android---Timer和Handler
Timer是一個執行任務的類,他接受TimerTask的參數;
Timer執行任務有兩種方式,一種是在某個指定的時候執行某個任務timer.schedule(Timertask task,Data data),另一種是在多長時間之後執行某個任務timer.schedule(TimerTask task,long delay);
TimerTask中執行指定的任務,但由於Android是線程安全的,所有的界麵的更新都必須放到主線程中,所以要使用到Handler對象。
主體代碼如下:
Timer timer=new Timer();
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg){
switch(msg.what){
case 1:
setTitle("真的變了");
break;
}
super.handleMessage(msg);
}
};
TimerTask task =new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
//由於主線程安全,頁麵的更新需放到主線程中
Message msg =new Message();
msg.what=1;
handler.sendMessage(msg);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//一秒後更改標題
timer.schedule(task, 1000);
}
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg){
switch(msg.what){
case 1:
setTitle("真的變了");
break;
}
super.handleMessage(msg);
}
};
TimerTask task =new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
//由於主線程安全,頁麵的更新需放到主線程中
Message msg =new Message();
msg.what=1;
handler.sendMessage(msg);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//一秒後更改標題
timer.schedule(task, 1000);
}
最後更新:2017-04-02 06:51:53
上一篇:
Android開發教程英文視頻(YouTube)
下一篇:
asp.net關於WEB端用戶重複提交問題。禁用服務器控件按鈕問題。
獨家 | 手把手教隨機森林
基於Hadoop大數據分析應用場景與實戰
麵試時,你會問麵試官哪些問題?
各國被黑客泄露的信息都是真的嗎?揭秘真相森林中的重重謊言
多核時代:並行程序設計探討(5)——Windows和Linux對決(進程間同步)
android抓屏
Interop type 'Microsoft.Office.Interop.Word.ApplicationClass' cannot be embedded. Use the applicable
使用Maven構建項目
Davinci DM6446 Codec Engine雙核通信環境的搭建
商之翼新聞|電信網絡詐騙案持續高發,老年群體成騙子重點目標