我開發了一個自動通話應用程序。該應用程序讀取包含電話號碼列表並呼叫幾秒的文本文件,結束通話,然後重複。如何降低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