V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
onceyoung
V2EX  ›  问与答

关于安卓后台的问题

  •  
  •   onceyoung · 2015-08-19 14:30:23 +08:00 · 1451 次点击
    这是一个创建于 3389 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    6 条回复    2015-08-20 09:33:58 +08:00
    wy315700
        1
    wy315700  
       2015-08-19 14:33:58 +08:00
    remote service
    onceyoung
        2
    onceyoung  
    OP
       2015-08-19 14:55:29 +08:00
    @wy315700 指的是在 mainfest 里改 process name 让 service 成为 remote service 吗?这个方法我尝试过,页没有用。
    wy315700
        3
    wy315700  
       2015-08-19 14:57:52 +08:00
    @onceyoung 监听一系列系统事件,比如锁屏解锁什么的,然后唤醒
    onceyoung
        4
    onceyoung  
    OP
       2015-08-19 15:02:46 +08:00
    @wy315700 但是服务和 app 不都被杀掉了吗,这些事情应该也没有机会再去做了吧。我观察到微信的服务在清理之后确实是被杀掉了的,不过它自己自动重启了又,是不是用了类似守护进程一类的技术呢?
    wy315700
        5
    wy315700  
       2015-08-19 15:11:08 +08:00
    @onceyoung 就是监听事件把服务唤醒啊,
    snowspace
        6
    snowspace  
       2015-08-20 09:33:58 +08:00
    如果是内部使用的话加一个常驻的通知。操作系统目测会把常用的应用加入到白名单,可以手动加进去。
    或者如楼上所说监听各种事件唤醒,电量变化等等。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5011 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 09:48 · PVG 17:48 · LAX 01:48 · JFK 04:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.