现在是用的这种方式启动的服务,如何能够保持服务一直在后台运行,有 root 权限
1
kop1989smurf 2023-05-16 09:59:56 +08:00
自从 Android6.0 引入 doze 机制之后,就不存在通过正常手段可以“一直后台运行”的服务了。
非正常手段有很多,比如一个像素点的 Activity ,ROM 白名单等等。但这也都不能保证 Activity/Service 的活跃状态。 |
2
sadfQED2 2023-05-16 10:00:06 +08:00 via Android
有 root 权限的话把 apk 放到系统目录试试呢。我以前在 android5 版本这样做是没问题的
如果这不行的话就装个 xposed ,然后尝试一些 xposed 的保活模块 |
3
greenskinmonster 2023-05-16 10:14:23 +08:00
设备管理器? Accessibility Service ?如果你能接受每次开机手动运行一次,启动前台服务的话,也是能做到的。以上都不需要 root 。
|
4
horou OP @greenskinmonster 可以接受,系统的 Launcher 桌面也是我们做的,在 Launcher 里面启动我们的服务应该不会被进程杀死吧
|
5
freddong 2023-05-16 12:20:24 +08:00
俩 service 互相拉起
|
6
5evWx1D0iuQ8fb15 2023-05-16 12:55:09 +08:00 via iPad
|
7
ysc3839 2023-05-16 16:48:56 +08:00 via Android
显示一个通知的“前台服务”是能尽可能保持运行的,不显示通知的后台服务最多只能做到被杀死后重新启动。可以看一下 Telegram Android 的代码,在 MIUI 下测试,允许自启动后,后台服务被杀死也能自动重启。
|
8
deng81416754 2023-05-16 16:51:55 +08:00
瞧瞧跟你讲,系统不会杀 luacher 应用,你可以把服务加到这里
|
9
codehz 2023-05-16 20:21:58 +08:00
有系统权限?试试直接在 framework 里添加一个系统服务
|
10
TArysiyehua 2023-05-16 20:42:33 +08:00
@horou 把你的进程加到系统白名单里就好了,都不用保活
|
11
cvbnt 2023-05-16 20:53:18 +08:00 via Android
可以研究一下拼多多
|
12
Ionian 2023-05-16 22:41:59 +08:00
WorkManager 呢
|
13
NSChris 2023-05-17 13:19:24 +08:00
加到闹钟服务里面
|