要爲我的應用程序實現我的啓動畫面,我要從主線程開始一個線程,sleep
有一段時間並調用了本意。並且工作正常。 但我擔心的是我們是否需要在主線程上等待? (目前我沒有這樣做) 如果主線程先完成,將會發生什麼情況以及如何處理這種情況?Android:如果主線程在工作線程之前完成,會發生什麼?
感謝, Venkat
要爲我的應用程序實現我的啓動畫面,我要從主線程開始一個線程,sleep
有一段時間並調用了本意。並且工作正常。 但我擔心的是我們是否需要在主線程上等待? (目前我沒有這樣做) 如果主線程先完成,將會發生什麼情況以及如何處理這種情況?Android:如果主線程在工作線程之前完成,會發生什麼?
感謝, Venkat
主線程本身不能是 「侍候」。當仍有非守護進程的子線程仍在運行時,應用程序無法退出。
如果在啓動它們之前將子線程設置爲守護進程,它們將在應用程序退出時立即終止。
Thx都鐸王朝,所以我不需要等待主方法,並且我現有的代碼足夠安全,對? – 2012-03-09 18:21:42
是的,這是正確的。 – Tudor 2012-03-09 18:29:27
使用此代碼啓動畫面:「子」線程在運行之前
Handler handler=new Handler();
Runnable r=new Runnable()
{
public void run()
{
// start another activity
}
};
handler.postDelayed(r, 5000); // wait 5 second
這是正確的答案。當runnable可以在處理程序中爲您執行相同的操作時,無需啓動線程! – Josh 2012-03-09 17:31:21
主線程不能完成,這是變量範圍壽命的問題。所以「子」線程在主線程的範圍內被創建和初始化,所以它在活着的時候 - 主線程也會活着 – sll 2012-03-09 20:05:18