nnegier
V2EX  ›  Android

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

  •  
  •   nnegier · Jul 22, 2024 · 9562 views
    This topic created in 835 days ago, the information mentioned may be changed or developed.

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

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

    Supplement 1  ·  Jul 22, 2024
    值得注意的是:我的进程没被杀的情况下,我的线程受如熄屏等 IDLE 影响死了。这里的问题就在于进程没死。要是线程死了,进程也死了,那也就没事了,用户重新进入那就是正常流程,功能也没有什么影响。我也不知道为什么安卓搞这么奇葩的设计,我也不知道要怎么改好。
    15 replies  •  2024-07-22 17:42:31 +08:00
    lx0758
    lx0758
    Jul 22, 2024
    1
    ForegroundService
    WakeLock

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

    要么学并夕夕找漏洞,要么引导用户去电池设置里允许后台运行
    kujio
    kujio
    Jul 22, 2024
    11
    话说我也是干安卓的,我有点懵你这个 IDLE 是什么?
    okakuyang
    okakuyang
    Jul 22, 2024
    12
    前台服务还要加上对应权限,才能实现后台常驻。如果是系统节能管家杀的,那就要去关闭节能管家,如果不能关要想办法进去节能管家白名单。
    cheng6563
    cheng6563
    Jul 22, 2024
    13
    国产系统有一套自己的逻辑
    HojiOShi
    HojiOShi
    Jul 22, 2024❤️1
    14
    勤奋点的,自己实现能引导用户去各家安全管家加白名单或者给最近任务卡片挂锁的 UI 。
    懒点的就直接给个 https://dontkillmyapp.com/ 就行。
    nnegier
    nnegier
    OP
    Jul 22, 2024
    15
    @HojiOShi 超级感谢,从你给出的链接中解惑了,我是说为什么开了电量白名单线程还是被停
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3008 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 11:02 · PVG 19:02 · LAX 03:02 · JFK 06:02
    ♥ Do have faith in what you're doing.