我怎样才能避免android后台进程饥饿?

时间:2015-05-17 07:58:18

标签: android process su thread-priority

我使用Runtime.exec()从Android应用运行本机后台进程。

好像每隔几秒就会让这个过程进入睡眠状态200毫秒 看起来Android操作系统只是让这个过程挨饿。

我是否可以通过某种方式将进程优先级从后台进程更改为其他类型的优先级?

假设运行该流程的应用程序可以获得超级用户访问权限。

修改:

我用来运行流程的命令:

String fullCommand = "export LD_LIBRARY_PATH=LD_LIBRARY_PATH:. && ./MyProc";

Runtime.getRuntime().exec(new String[]{"su", "-c ", fullCommand });

2 个答案:

答案 0 :(得分:1)

如果您知道流程的PID,则可以使用renice更改其优先级 (taken from this answer)。

你可以这样打电话给renice

renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

答案 1 :(得分:-1)

尝试使用.setPriority()方法。

 Thread t=new Thread();
 t.setPriority(Thread.MAX_PRIORITY);