NiceLeeのBlog 用爱发电 bilibili~

旧手机废物利用(4)-Termux:Tasker定时调用任务

2019-09-08
nIceLee

阅读:


熄屏状态下,Termux定时功能并不能很好地执行。
一个解决方案是触发器由第三方APP Task担当,调用Termux的脚本即可。

前言

  • 可以先试试运行termux-wake-lock,防止设备睡眠,看能不能解决问题。
  • 首先发现的问题是在熄屏状态下,Java调用Timer + Timer Task,时间到了基本不执行。
    后来换了多种实现方式仍然有问题。
  • 接下来发现Termux终端本身timeout/crontab等功能在熄屏状态也不能很好地执行。
  • 可以想见,Android本身熄屏状态下对于程序的线程执行有所优化,这个问题有三种解决方案:
    • 保持亮屏。耗电太多,感觉没啥意义了,就这不如直接用PC得了
    • 使用Android本身计时的解决方案。原生APP解决方案是有的,但Termux模拟出来的终端到底如何去利用,是个问题
    • 由某个原生APP来充当定时触发器,通过某种方式来调用Termux的特定脚本/程序。
      官方给出了组合 Tasker + Termux:Task + Termux。
  • 官方Wiki
  • 一个例子

如何实现

准备工作

  • 安装好Tasker
  • 安装好Termux:Task插件
  • Termux中新建存放任务脚本的文件夹
    mkdir -p ~/.termux/tasker
    

实现步骤

  • 放入待运行的脚本
    假定访问本地的某个URL发起请求
    cd ~/.termux/tasker
    echo curl http://127.0.0.1:8888/test >> test.sh
    exit
    
  • Task调用
    • Tasker添加任务
    • 弹出对话框,选择插件
    • 弹出对话框,选择termux:task
    • 弹出对话框,选择准备好的脚本
    • Tasker添加触发该任务的条件(定时等)

内容
隐藏