V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
horou
V2EX  ›  程序员

Android 如何实现 services 保活

  •  
  •   horou · 317 天前 · 2777 次点击
    这是一个创建于 317 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Imgur

    现在是用的这种方式启动的服务,如何能够保持服务一直在后台运行,有 root 权限

    13 条回复    2023-05-17 13:19:24 +08:00
    kop1989smurf
        1
    kop1989smurf  
       317 天前
    自从 Android6.0 引入 doze 机制之后,就不存在通过正常手段可以“一直后台运行”的服务了。

    非正常手段有很多,比如一个像素点的 Activity ,ROM 白名单等等。但这也都不能保证 Activity/Service 的活跃状态。
    sadfQED2
        2
    sadfQED2  
       317 天前 via Android
    有 root 权限的话把 apk 放到系统目录试试呢。我以前在 android5 版本这样做是没问题的

    如果这不行的话就装个 xposed ,然后尝试一些 xposed 的保活模块
    greenskinmonster
        3
    greenskinmonster  
       317 天前
    设备管理器? Accessibility Service ?如果你能接受每次开机手动运行一次,启动前台服务的话,也是能做到的。以上都不需要 root 。
    horou
        4
    horou  
    OP
       317 天前
    @greenskinmonster 可以接受,系统的 Launcher 桌面也是我们做的,在 Launcher 里面启动我们的服务应该不会被进程杀死吧
    freddong
        5
    freddong  
       317 天前
    俩 service 互相拉起
    EmperorXI
        6
    EmperorXI  
       317 天前 via iPad
    ysc3839
        7
    ysc3839  
       317 天前 via Android
    显示一个通知的“前台服务”是能尽可能保持运行的,不显示通知的后台服务最多只能做到被杀死后重新启动。可以看一下 Telegram Android 的代码,在 MIUI 下测试,允许自启动后,后台服务被杀死也能自动重启。
    deng81416754
        8
    deng81416754  
       317 天前
    瞧瞧跟你讲,系统不会杀 luacher 应用,你可以把服务加到这里
    codehz
        9
    codehz  
       317 天前
    有系统权限?试试直接在 framework 里添加一个系统服务
    TArysiyehua
        10
    TArysiyehua  
       317 天前
    @horou 把你的进程加到系统白名单里就好了,都不用保活
    cvbnt
        11
    cvbnt  
       317 天前 via Android
    可以研究一下拼多多
    Ionian
        12
    Ionian  
       317 天前
    WorkManager 呢
    NSChris
        13
    NSChris  
       316 天前
    加到闹钟服务里面
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1773 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 16:34 · PVG 00:34 · LAX 09:34 · JFK 12:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.