A. android中用什麼替換Thread.sleep
android 中,有的時候用Thread.sleep()是不合適的。
例如,你在用ProgressDialog 的時候,如果用的不合適,會使Progressdialog圖標不轉動。
代替方法是,用Handler.postDelayed需求是等2s,請求一下伺服器。等待的時候,顯示ProgressDialog 。
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sendMessage("");//耗時操作
替換成
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
sendMessage("");//耗時操作
}
}, 2000);
B. android中google有一個方法可以替代 Thread.sleep()方法來著。它不需要try catch,叫啥
如果是想延時一下,在處理業務邏輯的話,可以使用handler類提供的方法:handler.postDelayed()直接延時操作
C. android開發中線程有幾種狀態,分別是哪些
【答案】:1)、新建狀態(New):新創建了一個線程對象。
2)、就緒狀態(Runnable):線程對象創建後,前螞消其他線程調用了該對象的start()方法。該狀態的線程位於可運行線程池中,變得可運行,等待獲取CPU的使用權。
3)、運行狀態(Running):就緒狀態的線程獲取了CPU,執行run()方法。
4)、阻塞狀態(Blocked):阻塞狀態是線程因為某種原因放棄CPU使用權,暫時停止運行。直到線程進入就緒狀態,才有機會轉到運行狀態。阻塞的情況分三種:
(一)、等待阻塞慧知:運行的線程執行wait()方法,JVM會把該線程放入等待池中。
(二)、同步阻塞:運行的線程在獲取對象的同步鎖時,若該同步鎖被別的線程佔用,則JVM會把該線程放入鎖物卜池中。
(三)、其他阻塞:運行的線程執行sleep()或join()方法,或者發出了I/O請求時,JVM會把該線程置為阻塞狀態。當sleep()狀態超時、join()等待線程終止或者超時、或者I/O處理完畢時,線程重新轉入就緒狀態。
5)、死亡狀態(Dead):線程執行完了或者因異常退出了run()方法,該線程結束生命周期。
當調用start方法的時候,該線程就進入就緒狀態。等待CPU進行調度執行,此時還沒有真正執行線程。
當調用run方法的時候,是已經被CPU進行調度,執行線程的主要任務。
D. Android延時操作的幾種方式
在Android開發中我們可能會有延時執行某個操作的需求,例如我們啟動應用的時候,一開始呈現的是一個引導頁面,過了兩三秒後,會自動跳轉到主界面。這就是一個延時操作。
下面是實現延時執行操作的幾種方法:
1.使用線程的休眠實現延時操作
new Thread() { @Override
public void run() { super.run();
Thread.sleep(3000);//休眠3秒
/**
* 要執行的操作
*/
}
}.start();
2.使用TimerTask實現延時操作
TimerTask task = new TimerTask() { @Override
public void run() { /**
*要執行的操作
*/
}
};
Timer timer = new Timer();
timer.schele(task, 3000);//3秒後執行TimeTask的run方法
3.使用Handler的postDelayed方法實現延時操作
Handler handler = new Handler();
handler.postDelayed(new Runnable() { @Override
public void run() { /**
*要執行的操作
*/
}
}, 3000);//3秒後執行Runnable中的run方法
E. android開發等待一段時間後執行下一條語句,但是thread.sleep(30000)之後線程就掛起了
android的開發思路中,基本上都是由子線程去執行任務的,然後執行完了之後發回message再由handler去處理。這樣才不會影響程序連貫性的操作。
你這個需要sleep之後再執行的語句,就放到子線程中去。
F. 安卓 lua語言 在for中,如何寫指令延時指令
sleep() 函數?
android:Sleep(100) --延時100ms。
不過這樣寫,最好使用多線程,不然程序化卡在那。