V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nnegier
V2EX  ›  Android

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

  •  
  •   nnegier · 115 天前 · 3967 次点击
    这是一个创建于 115 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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