Android 開發之 定時器 Handler + Runnable方式
阿新 • • 發佈:2019-02-13
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.other_main);
<span style="white-space:pre"> </span>//開始進行更新 selfHandler.postDelayed(runnable, 1000); findViewById(R.id.button3).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { selfHandler.removeCallbacks(runnable); } }); } Handler selfHandler = new Handler(); Runnable runnable = new Runnable() { @Override public void run() { try { selfHandler.postDelayed(this,1000); swit.setText(String.valueOf(new Date())); }catch (Exception e){ System.out.println("exception " + e); } } };
1.定時器實現步驟:
1. 建立Handler物件。注意是
importandroid.os.Handler,下的handler.
2. 建立runnable物件
附帶 : swit之TextSwitcher程式碼Runnable runnable = new Runnable() { @Override public void run() { try { // selfHandler.postDelayed(this,1000); swit.setText(String.valueOf(new Date())); //需要執行的語句。swit是一個textSwitcher }catch (Exception e){ System.out.println("exception " + e); } } };
swit = (TextSwitcher) findViewById(R.id.textSwitcher); swit.setFactory(this); Animation in = AnimationUtils.loadAnimation(this, android.R.anim.fade_in); Animation out = AnimationUtils.loadAnimation(this, android.R.anim.fade_out); swit.setInAnimation(in); swit.setOutAnimation(out);
3.在Oncreate方法中,進行呼叫
selfHandler.postDelayed(runnable, 1000);
4.我添加了一個按鈕,可以停止這個定時器
findViewById(R.id.button3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selfHandler.removeCallbacks(runnable); //Handler,Runnable與上面對應
}
});
總結:
我是用Android studio建立的專案:
下載程式碼:原始碼下載