受安卓 IDLE 影响,线程特别容易死,怎么办好?

56 天前
 nnegier

目前想到的是在 Activity 生命周期中去唤醒,但是这样用户不进入应用的情况下无法唤醒,比如计时的通知,计时需要不断的更新哪怕用户不进入应用。

我在想: 有办法可以做到线程自唤醒吗?假设安卓系统没有杀掉我的应用,用户重新使用手机的时候,线程自动唤醒。

2835 次点击
所在节点    Android
15 条回复
lx0758
56 天前
ForegroundService
WakeLock

不过说回来这么流氓的应用如果面向 C 端很难有出路
lisongeee
56 天前
呃,这东西不能直接用前台通知+service 实现吗?
choury
56 天前
老实搞个前台服务,在状态栏保留个常驻通知,其他路子已经基本都被堵死了,除非你能定制 rom
nnegier
56 天前
@lx0758
@choury
@lisongeee
我就是用的前台服务呀,在 Service 里面放了一个线程,不断的更新通知上的计时时间,但是没用,IDLE 后还是死。
bkmi
56 天前
@nnegier 如果前台服务还被杀,那就不是你的问题,而是系统问题
psklf
56 天前
@bkmi #5 也有可能是你代码没写好
tool2dx
56 天前
也可能是被电池限制了。既然你进程没死,那就唤醒线程就可以了。
nnegier
56 天前
@psklf
@bkmi
都讲了系统 IDLE 影响😂
nnegier
56 天前
@tool2dx 除了 Activity 生命周期,还有什么方式可以唤醒线程?
winterbells
56 天前
这个是系统限制,看你的描述很可能是国产手机的系统,不讲道理的

要么学并夕夕找漏洞,要么引导用户去电池设置里允许后台运行
kujio
56 天前
话说我也是干安卓的,我有点懵你这个 IDLE 是什么?
okakuyang
56 天前
前台服务还要加上对应权限,才能实现后台常驻。如果是系统节能管家杀的,那就要去关闭节能管家,如果不能关要想办法进去节能管家白名单。
cheng6563
56 天前
国产系统有一套自己的逻辑
HojiOShi
56 天前
勤奋点的,自己实现能引导用户去各家安全管家加白名单或者给最近任务卡片挂锁的 UI 。
懒点的就直接给个 https://dontkillmyapp.com/ 就行。
nnegier
56 天前
@HojiOShi 超级感谢,从你给出的链接中解惑了,我是说为什么开了电量白名单线程还是被停

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1059058

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX