我开发了一个自动通话应用程序。该应用程序读取包含电话号码列表并呼叫几秒的文本文件,结束通话,然后重复。如何降低Android手机中应用的CPU使用率?
我的问题是,该应用程序10到16小时后不发送呼叫。我完全不知道原因,但我想这是CPU使用率的问题。我的应用程序的CPU使用率差不多是50%!如何减少CPU使用率?
这里是源代码的一部分:
if(r_count.compareTo("0")!=0) {
while(index < repeat_count) {
count = 1;
time_count = 2;
while(count < map.length) {
performDial(); //start call
reject(); //end call
finishActivity(1);
TimeDelay("60"); // wait for 60sec
count = count + 2;
time_count = time_count + 2;
onBackPressed(); // press back button for calling next number
showCallLog();
finishActivity(0);
}
index++;
}
这是方法来源:
public void TimeDelay(String delayTime) {
saveTime = System.currentTimeMillis()/1000;
currentTime = 0;
dTime = Integer.parseInt(delayTime);
while(currentTime - saveTime < dTime) {
currentTime = System.currentTimeMillis()/1000;
}
}
重复在数次while循环。
由于我们不知道在调用的函数中发生了什么,所以您无法知道为什么要使用50%的CPU。如果您想简单地降低平均CPU使用率,您可以将时间延迟增加到60秒以上。 – 2011-06-04 02:33:54
'TimeDelay()'做什么? – Haphazard 2011-06-04 04:19:17
考虑使用从Timer中调度的TimerTask,而不是while循环。它更加优化,你不必自己管理线程的睡眠/通知调用。 – 2013-07-27 10:32:27