我通过 startService 的方式启动一个 service ,并且 onStartCommand 方法中返回 START_STICKY ,这样的意图是让 app 退出后 service 可以重生继续运行。
相信上面这个场景对大家来说,很简单也很常见,我在三星手机上测试正常,但是在魅族手机上测试发现, app 退出后, service 并没重生。
所以,
startservice 如何保证在所有手机上都可以一直运行下去,被杀死之后还能自动重生。(上网查貌似与android:installLocation="auto"
有关,但是尝试之后并没效果)
为了解决上面这个问题,我又尝试了如下方案,注册一个开机启动的 broadcastReceiver ,一开机就在这个接收器中接收开机广播,然后在这个接收器中 start service ,这也是我们常常用到的开机自启动,但是部分机型是这样的(比如魅族),它屏蔽了开机自启动,需要你手动到设置页面去开启该应用的开机自启动。
部分手机需要手动开启自启动,怎么破
1
sparanoid MOD |
2
chenliang0571 2015-10-14 11:16:48 +08:00
2. 提示用户某些功能需要开启自启动,选择权交给用户。
|
3
miclushine 2015-10-14 11:34:41 +08:00
每个厂商的手机都会修改 AOSP 的一些功能的,只能多测试,然后针对机器主动提示用户开机自启动之类的。
|
4
stdying 2015-10-14 11:36:04 +08:00
设置成前台 service ,会更好些
|
5
cxe2v 2015-10-14 15:09:01 +08:00
你要做这个恶心的功能做什么?搞监控吗?
|
6
kyze8439690 2015-10-14 16:39:09 +08:00
前台显示 1 像素透明点,呵呵,不过这个又是新的权限了。
|
7
allan1st 2015-10-14 16:43:20 +08:00
用 GCM 即可。
|
8
kx5d62Jn1J9MjoXP 2015-10-14 17:08:09 +08:00
对于那些需要手动开启自启动的手机只能放弃了。
如果你的 app 不需要开机启动也能满足魅族用户的需求,那么正好。 如果你的 app 无法开机启动会导致功能缺失,比如无法及时收取后台消息,那么就让魅族用户自己决定是允许开机启动还是使用一个功能缺失的 app 吧。 |
9
Jocky1 2015-10-14 21:56:58 +08:00
@kyze8439690 qq 吗?
|
10
zhaohui318 2015-10-15 08:47:31 +08:00
魅族自带绿色守护功能
|
11
testex 2015-10-20 17:17:32 +08:00
有流氓的心没流氓的技术
呵呵 |