下载了 Server 酱的 Android 端 App
平时是有图标常驻通知栏的
在多窗口界面清除后台之后,通知栏图标消失
但随即又会在通知栏出现
当然我已经设置了 APP 的 自启动 权限
请问这个功能是如何实现的呢?
1
ziseyinzi 2023-02-15 18:21:22 +08:00
首先,多任务界面划掉窗口不代表清除了后台
|
3
ysc3839 2023-02-15 18:34:13 +08:00 via Android
可以看看 Telegram Android 的代码,我只知道也有这样的功能
|
4
Fo3256Go 2023-02-15 18:44:15 +08:00 via Android
应该是一个消息推送服务吧,
不管是真的要推送消息,还是虚假地宣称推送消息为了保活。 只要它这样宣称了,系统就会优先允许它留在后台。 还有那种在后台播放空白音乐的,都是宣称自己有音乐要播放,其实是为了别的。 |
5
cnuser002 2023-02-15 18:50:09 +08:00
按你这描述,可能是做出了守护进程,在主程序挂了之后,守护进程再把它拉起来。相当于没有完全关闭,它就不停复活。你可以试试关闭手机重启,它还会不会自己冒出来。
安卓应用常驻后台还是很常见的。你划掉可能只是应用的 Activity ,它还有个 Service 在后台运行着。Service 除了没界面,其它的活儿都能继续干的。 |
6
learningman 2023-02-15 18:51:05 +08:00 1
实现方法太多了,试举两例
首先有通知是 foreground service 的强制要求,保活必须要有个 blocking 的通知挂在前台。应用被清除的时候会调用到 onDestroy 的 lifecycle hook ,可以在这个 hook 中做重新唤醒的操作。 比如可以用 WorkManager 设置一个 1 秒后启动的单次任务唤醒。 可以用 Alarm 设置一秒后的唤醒。 方法太多了,我说的这些是调用正常 API 能实现的,反射搞黑科技的就更多了。 |
7
jeesk 2023-02-15 19:01:11 +08:00
原生的可以。 国产 ui 你试一试呢? 多进程都会被干
|
8
cheng6563 2023-02-15 19:39:24 +08:00
正常 API 一堆
|
10
rojer12 2023-02-16 08:44:28 +08:00
正常的 api 一堆,同系软件之间的相互唤醒啊,方法太多了
不是常用软件的建议直接都放 ice box 冻结就好了 |
11
systemcall 2023-02-16 09:17:40 +08:00 via Android
国产系统很多是有厂家级 api 的,比如微信就在用,不仅不会被轻易杀掉,还可以在应用自己觉得性能不够用的情况下杀掉别的应用
|
12
jiaming1992 2023-02-16 11:10:14 +08:00
既然你已经设置了 app 自启动权限,那它就有概率会被其他保活应用唤醒啊,国产应用集成的乱八七糟第三方 sdk 那些个互拉行为不知道吗
|