android7.0如何修改Launcher界面为自己定义的界面

yzwstc 发布于 2016/11/03 19:32
阅读 1K+
收藏 0

最近新项目中有定制首次开机界面的需求,于是自己写了个应用,在主Activity的intent-filter中配置如下:

<intent-filter>
     <action android:name="android.intent.action.MAIN"/>
     <category android:name="android.intent.category.LAUNCHER" />
     <category android:name="android.category.myownapp" />
     <category android:name="android.intent.category.DEFAULT"/>
     <category android:name="android.intent.category.HOME" />
</intent-filter>
然后在AcitvityManagerService中的getHomeIntent中配置这个intent.addCategory("android.category.myownapp")

这样修改之后开机启动会发送带有android.category.myownapp的信息,应该会启动我们的应用,但是系统却提示没有找到我们的activity,有人碰到过这种情况吗?

加载中
0
黛曦葛溪
黛曦葛溪
尝试在App AndroidMainfest.xml 中加 android:persistent="true"属性.在系统启动的时候就加载它,否则应用没启动很多都没初始化,接收不到Intent 信息的吧。  另外这个应用里加开机广播,这样收到广播后起来不更方便么?为什么要AcitvityManagerService中调起呢?不清楚你们需求,只是如果单纯就是让它起来的话觉得没必要这么麻烦。很多时候应用开机启动,就是得到广播以后,自己启动自己Activity.我们以前这么做的。
yzwstc
yzwstc
现在问题已经解决,在systemready里执行startHomeActivityLocked的时候延时加载就可以了,应该是包没有加载完全,启动的时候找不到这个activity,导致无法启动; 需求是应用需要尽早启动,接收开机广播那就太慢了
返回顶部
顶部