我怎样才能防止进程(脚本)在Android中暂停(冻结)?

我有一个脚本在等待一分钟后运行一个命令

#!/sbin/busybox sh
while true; do
sleep 3600;
sync;
sysctl -w vm.drop_caches=2;
done;

但是一旦Android设备进入睡眠状态,该脚本会在一秒钟后暂停。 每次唤醒设备后,脚本继续计数。 我怎样才能让这个脚本永不暂停(冻结)? 我也将-1000设置为“oom_score_adj”,不会被oom杀死。 谢谢


如何防止Android设备以编程方式进入休眠状态?
从根shell(例如adb shell)中,您可以使用以下命令来锁定:

echo mylockname >/sys/power/wake_lock

之后,设备将保持清醒状态,直到您执行以下操作:

echo mylockname >/sys/power/wake_unlock 

与'mylockname'相同的字符串。

请注意,这不会阻止屏幕变黑,但会阻止CPU进入休眠状态。

请注意, /sys/power/wake_lock对于user无线电(1001)和group系统(1000)是可read-write ,当然还有root用户。

所以我猜你的脚本是:

#!/sbin/busybox sh
echo mylockname >/sys/power/wake_lock;
while true; do
sleep 3600;
sync;
sysctl -w vm.drop_caches=2;
done;
echo mylockname >/sys/power/wake_unlock;

参考
参考1

链接地址: http://www.djcxy.com/p/91171.html

上一篇: How can i prevent a process (script) from suspending (freezing) in android?

下一篇: saving data update service for an android app