关于安卓后台的问题

2015-08-19 14:30:23 +08:00
 onceyoung

我想做一个安卓后台的 service 用来做 app 的推送,但是发现只要 app 退出之后, service 也被系统杀死了,但我发现微信的服务可以常驻后台,并且清理内存(小米)之后,还能够继续保持后台运行。我目前已经尝试过如下:
1. 修改 onStartCommand 的返回值为 START_STICKY
2. 采用 startForeground 将 service 设置成 foreground
但都做不到一直常驻后台的效果?有研究过相关的朋友能否指点一二,不胜感激。

1441 次点击
所在节点    问与答
6 条回复
wy315700
2015-08-19 14:33:58 +08:00
remote service
onceyoung
2015-08-19 14:55:29 +08:00
@wy315700 指的是在 mainfest 里改 process name 让 service 成为 remote service 吗?这个方法我尝试过,页没有用。
wy315700
2015-08-19 14:57:52 +08:00
@onceyoung 监听一系列系统事件,比如锁屏解锁什么的,然后唤醒
onceyoung
2015-08-19 15:02:46 +08:00
@wy315700 但是服务和 app 不都被杀掉了吗,这些事情应该也没有机会再去做了吧。我观察到微信的服务在清理之后确实是被杀掉了的,不过它自己自动重启了又,是不是用了类似守护进程一类的技术呢?
wy315700
2015-08-19 15:11:08 +08:00
@onceyoung 就是监听事件把服务唤醒啊,
snowspace
2015-08-20 09:33:58 +08:00
如果是内部使用的话加一个常驻的通知。操作系统目测会把常用的应用加入到白名单,可以手动加进去。
或者如楼上所说监听各种事件唤醒,电量变化等等。

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

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

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

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

© 2021 V2EX