• 请不要在回答技术问题时复制粘贴 AI 生成的内容
horou
V2EX  ›  程序员

Android 如何实现 services 保活

  •  
  •   horou · May 16, 2023 · 4620 views
    This topic created in 1270 days ago, the information mentioned may be changed or developed.

    Imgur

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

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

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

    如果这不行的话就装个 xposed ,然后尝试一些 xposed 的保活模块
    greenskinmonster
    greenskinmonster
    May 16, 2023
    3
    设备管理器? Accessibility Service ?如果你能接受每次开机手动运行一次,启动前台服务的话,也是能做到的。以上都不需要 root 。
    horou
    horou
    OP
    May 16, 2023
    4
    @greenskinmonster 可以接受,系统的 Launcher 桌面也是我们做的,在 Launcher 里面启动我们的服务应该不会被进程杀死吧
    EI8xU01k92WdI1Mb
    EI8xU01k92WdI1Mb
    May 16, 2023
    5
    俩 service 互相拉起
    ysc3839
    ysc3839
    May 16, 2023 via Android
    7
    显示一个通知的“前台服务”是能尽可能保持运行的,不显示通知的后台服务最多只能做到被杀死后重新启动。可以看一下 Telegram Android 的代码,在 MIUI 下测试,允许自启动后,后台服务被杀死也能自动重启。
    deng81416754
    deng81416754
    May 16, 2023
    8
    瞧瞧跟你讲,系统不会杀 luacher 应用,你可以把服务加到这里
    codehz
    codehz
    May 16, 2023
    9
    有系统权限?试试直接在 framework 里添加一个系统服务
    TArysiyehua
    TArysiyehua
    May 16, 2023
    10
    @horou 把你的进程加到系统白名单里就好了,都不用保活
    cvbnt
    cvbnt
    May 16, 2023 via Android
    11
    可以研究一下拼多多
    Ionian
    Ionian
    May 16, 2023
    12
    WorkManager 呢
    NSChris
    NSChris
    May 17, 2023
    13
    加到闹钟服务里面
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4834 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 07:23 · PVG 15:23 · LAX 23:23 · JFK 02:23
    ♥ Do have faith in what you're doing.