使android Python服务在挂起状态下运行

Rei*_*ica 15 python android android-scripting

这是我使用android-scripting编写的 Python 脚本:

import android, time

droid = android.Android()
interval = 1 # every 1 minute

while True:
    # define your own vibrate pattern here
    droid.vibrate(200)
    time.sleep(0.3)
    droid.vibrate(300)

    time.sleep(60*interval)
Run Code Online (Sandbox Code Playgroud)

它基本上每分钟振动(像一个激励者).但是,当手机被锁定并屏幕消失时,我感觉不到任何振动.也许Android正在冻结脚本(因此是while循环)?请注意,我确实将此脚本作为服务运行(长按并单击"作为服务启动").

有没有办法让这个脚本一直工作,无论电话暂停状态如何?

更新1:我确实偶尔会听到振动,而不是每分钟......但是每隔5-10分钟就会随机听到.

更新2:如果我正常运行脚本(而非作为服务),则会出现此问题.似乎"time.sleep"在指定时间内没有睡眠.

Sea*_*der 10

脚本环境绝对是二等公民.你想要的是使用ELAPSED_REALTIME称为AlarmManager.如果脚本环境不可用,那么你就会陷入困境.

至少目前,脚本环境并不是开发工具包环境的完全替代品,您可以在其中创建完整的应用程序.这意味着允许您执行一些简单的脚本编写任务,但代价是无法执行更复杂的操作.抱歉.


Fed*_*dor -2

可能的解决方案:使用一些调度程序软件并定期启动脚本。这样你就不需要调用 time.sleep()。

也许脚本并不是此类周期性任务的最佳解决方案。如果您编写一个简单的 Java 应用程序,则不会遇到此问题。