我有一個for循環作爲我的代碼中的後臺線程的一部分。在循環內執行代碼的一部分,我想等待一段時間,所以我調用thread.sleep。我發現如果在等待期間電話顯示屏關閉,等待時間變得不穩定。根據文件睡眠是不可靠的時間。所以我想知道要替代什麼。據我可以看到,如果我創建一個後延遲的子線程,我將失去for循環內的連續性。我希望我錯了,並沒有正確理解機制 - 任何幫助表示讚賞。 Ron什麼替代thread.sleep
1
A
回答
0
你可以使用Handler並撥打postDelayed?我真的不能聲稱這將是多麼可靠,或者它是否適合你的問題,但我用它來進行小規模的定期更新。
您也可以查看Partial Wake Locks以查看這是否會給您更可靠的性能。
0
你需要的東西是這樣的:對付睡眠的不可靠性(
(...)
Message msg = new Message();
try {
myHandler.sendMessageDelayed(msg,1000);
} catch (Exception e) {
Log.d(TAG,"Hum?",e);
}
}
}
private Handler myHandler= new Handler() {
/*
* (non-Javadoc)
*
* @see android.os.Handler#handleMessage(android.os.Message)
*/
@Override
public void handleMessage(Message msg) {
//DO WHAT YOU WANT..
}
};
1
單程)是添加代碼來衡量你睡的實際時間。這通常是在動畫中做出的,例如,可以跳過一些幀以趕上實時。
相關問題
- 1. 替代Thread.Sleep塊
- 2. Thread.sleep()方法替代
- 3. Thread.Sleep()的替代方法;
- 4. Thread.Sleep的替代方案()
- 5. Java中的Thread.Sleep替代
- 6. 是什麼了Thread.Sleep(9000升)和Thread.sleep代碼(9000)
- 7. 什麼是替代(替代())?
- 8. thread.sleep替換
- 9. 需要Thread.sleep()的替代解決方案;
- 10. 無凍結替代的Thread.Sleep的任務
- 11. Java中的Thread.sleep()的替代方法
- 12. Android的Thread.sleep方法的替代方案
- 13. Thread.Sleep的精確替代方法
- 14. 在系統測試中使用Selenium時,使用Thread.Sleep有什麼替代方法?
- 15. 什麼替代ToolServices.GetUnitCount?
- 16. 用什麼來代替div?
- 17. 什麼是Oracle.Connection的替代?
- 18. 什麼是Session.ReauthorizeRequest的替代?
- 19. 什麼是UDID的替代?
- 20. 用什麼字體替代
- 21. 什麼是iframe替代品?
- 22. 什麼是APC替代品?
- 23. 用什麼來代替$ .mobile.changePage()?
- 24. 還有什麼替代mousejoint?
- 25. 用什麼來代替GraphDatabaseSettings.BoltConnector?
- 26. 是什麼了session_register替代
- 27. 什麼是替代http.request()
- 28. 用什麼來代替sun.net.www.protocol.http.HttpURLConnection.userAgent?
- 29. 爲什麼用'$'代替'。'?
- 30. 什麼是file_column的替代?
如果我調用postDelayed,我如何返回到我的解釋中所述的for循環代碼?我剛剛查找了PartialWakeLocks,並且有一個重要的電力消耗預警。如果可以的話,我特別想保持電力使用量低,而且這種睡眠狀況可能會出現很多次。 – ron 2011-02-02 19:57:03
使用postDelayed的想法是讓你的循環中的東西成爲一個由處理程序調用的工作單元,它會重新運行(取代當前的睡眠)。在喚醒鎖定是的,你必須小心,不知道你在做什麼,我不會以任何方式爭論,但我只是想給你一些想法。 – 2011-02-02 20:26:19