关于 service 和开机自启动

2015-10-14 11:04:14 +08:00
 Registering
我通过 startService 的方式启动一个 service ,并且 onStartCommand 方法中返回 START_STICKY ,这样的意图是让 app 退出后 service 可以重生继续运行。

相信上面这个场景对大家来说,很简单也很常见,我在三星手机上测试正常,但是在魅族手机上测试发现, app 退出后, service 并没重生。

所以,
## 我的第一个问题就是
startservice 如何保证在所有手机上都可以一直运行下去,被杀死之后还能自动重生。(上网查貌似与`android:installLocation="auto"`有关,但是尝试之后并没效果)


为了解决上面这个问题,我又尝试了如下方案,注册一个开机启动的 broadcastReceiver ,一开机就在这个接收器中接收开机广播,然后在这个接收器中 start service ,这也是我们常常用到的开机自启动,但是部分机型是这样的(比如魅族),它屏蔽了开机自启动,需要你手动到设置页面去开启该应用的开机自启动。

## 我的第二个问题

部分手机需要手动开启自启动,怎么破
5344 次点击
所在节点    Android
11 条回复
sparanoid
2015-10-14 11:05:28 +08:00
chenliang0571
2015-10-14 11:16:48 +08:00
2. 提示用户某些功能需要开启自启动,选择权交给用户。
miclushine
2015-10-14 11:34:41 +08:00
每个厂商的手机都会修改 AOSP 的一些功能的,只能多测试,然后针对机器主动提示用户开机自启动之类的。
stdying
2015-10-14 11:36:04 +08:00
设置成前台 service ,会更好些
cxe2v
2015-10-14 15:09:01 +08:00
你要做这个恶心的功能做什么?搞监控吗?
kyze8439690
2015-10-14 16:39:09 +08:00
前台显示 1 像素透明点,呵呵,不过这个又是新的权限了。
allan1st
2015-10-14 16:43:20 +08:00
用 GCM 即可。
ssynhtn
2015-10-14 17:08:09 +08:00
对于那些需要手动开启自启动的手机只能放弃了。
如果你的 app 不需要开机启动也能满足魅族用户的需求,那么正好。
如果你的 app 无法开机启动会导致功能缺失,比如无法及时收取后台消息,那么就让魅族用户自己决定是允许开机启动还是使用一个功能缺失的 app 吧。
Jocky1
2015-10-14 21:56:58 +08:00
@kyze8439690 qq 吗?
zhaohui318
2015-10-15 08:47:31 +08:00
魅族自带绿色守护功能
testex
2015-10-20 17:17:32 +08:00
有流氓的心没流氓的技术
呵呵

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/227893

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX