如何使用:
1,首先創建壹個Handler對象。
Handler Handler = new Handler();
2,然後創建壹個Runnable對象
Runnable Runnable = new Runnable(){
@覆蓋
公共無效運行(){
// TODO自動生成的方法存根
//怎麽辦,在這裏再次調用這個Runnable對象,實現每兩秒壹次的定時器操作。
handler.postDelayed(this,2000);
}
};
3.使用PostDelayed方法,並在兩秒鐘後調用這個Runnable對象。
handler.postDelayed(runnable,2000);
實際上實現了壹個2s的定時器。
4.如果妳想關閉這個定時器,妳可以這樣做。
handler . remove callbacks(runnable);
當然,妳也可以嘗試做壹個鬧鐘提醒延時功能,比如先用MediaPlayer播放鬧鐘聲音。
不記得的話,被叫停後,下次5分鐘後播放。如果再次停止,下次將在4分鐘內播放。
………………
可以通過改變延遲時間來實現,用靜態對象操作會更容易。
它可以是異步的,但是Runnable是在Handler對象所在的線程中執行的。
如果它所在的線程是UI線程,還是不能在Runnable中執行耗時的操作,否則就是ANR。
前幾天我們自己的設備卡的很厲害,不到1秒就卡在跳轉界面了。我把跳轉動作放在Runnable裏面,在外面加了壹個彈出進度提示框。
註:舉例說明。
公共類XXX擴展活動
{
@覆蓋
公共void onCreate(Bundle saved instancestate)
{
super . oncreate(savedInstanceState);
requestWindowFeature(窗口。特征_編號_標題);
setContentView(r . layout . loading);//顯示屏1
Handler Handler = new Handler();
handler.postDelayed(新的splashhandler(),2000);//延遲2秒,然後運行splashhandler的run()。
}
類splashhandler實現Runnable
{
公共無效運行()
{
start activity(new Intent(get application()、second activity . class));//顯示第二個屏幕。
XXX . this . finish();//結束屏幕1
}
}
}