340746
V2EX  ›  Android

有 root 的 Flutter 安卓如何后台执行任务

  •  
  •   340746 · 20h 25m ago · 793 views

    用 Flutter 写了一个 Clash 核心的控制器,打算实现后台自动更新配置,进行覆写然后重启核心
    设备是一加 13T PKX110 ColorOS15 KSU
    试过用模块自动跑脚本,每隔 3600 秒循环一次,但是实测 sleep 3600 会有很大的偏移,睡了一觉发现脚本卡在 sleep 3600 不动了
    用 WorkManager 挂定时任务,似乎不太稳定,但好像能跑
    用 flutter_foreground_task 实现了网速通知,原理是与核心进行 ws 通信,但是一把软件切到后台网速更新几秒就停了,目前是用模块把 APP 放进 System 解决的想问问大家有没有别的办法

    7 replies    2026-07-02 11:56:09 +08:00
    tt83
        1
    tt83  
       20h 7m ago
    WorkManager 是不稳定而且不同的手机厂商实现不一样,在荣耀上基本没用,退到后台马上断网; flutter_foreground_task 记得好像要成功显示通知,如果没显示通知有些系统也会很快杀掉。
    TArysiyehua
        2
    TArysiyehua  
       19h 50m ago
    用 root 权限把应用到最近任务列表里锁定+自启动+电池优化+后台运行无限制
    340746
        3
    340746  
    OP
       17h 44m ago
    @TArysiyehua 各种设置都试过了,实在没有办法才上论坛问的🥲
    mxT52CRuqR6o5
        4
    mxT52CRuqR6o5  
       12h 23m ago
    mxT52CRuqR6o5
        5
    mxT52CRuqR6o5  
       12h 22m ago
    https://dontkillmyapp.com/oneplus
    oneplus 限制后台 5 个倒赞
    codehz
        6
    codehz  
       4h 7m ago
    走 ws 基本不可能稳的吧,现在一般方式是注入到系统服务里,走 binder 连,可以直接给主应用保活
    TArysiyehua
        7
    TArysiyehua  
       3h 1m ago
    @340746 那肯定是你设置不对呀,就算没有 root ,如果你自己能手动操作,你把它加入:最近任务列表里锁定+自启动+电池优化+后台运行无限制+前台服务, 这一套下来绝对可以,我自己最近刚做,华为,荣耀,小米红米,vivo ,OPPO 都可以。

    另外你说 wss 过几秒就断网了,这个跟杀进程应该是没有关系的。所以理论上还没有到保活这个阶段。u
    1. 应用设置那边看看是否有在后台就断开联网
    2. 网络设置那边有没有熄屏幕就断开网络
    3. 是否启了前台服务(我前面说的那一套是为了进程不被杀死),在进程不被杀死的前台,前台服务的作用就是要告诉系统:我还在忙,给我网络资源,不要断开。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5421 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 06:57 · PVG 14:57 · LAX 23:57 · JFK 02:57
    ♥ Do have faith in what you're doing.