a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 系統 > Android > 正文

Android定時器實現的幾種方式整理及removeCallbacks失效問題解決

2020-04-11 12:15:59
字體:
來源:轉載
供稿:網友
實現定時器有很多種方式,在這里我簡單的介紹幾種方式
(1)使用Handler + Runnable的方式
復制代碼 代碼如下:

Handler handler = new Handler();
Runnable runnable = new Runnable() {

@Override
public void run() {
//你要做的事
//......
System.out.println(Thread.currentThread().getName());
handler.postDelayed(runnable, 1000);
}
};

然后調用handler.post(runnable);就能啟動定時器,這里是每隔1s打印線程名字,從打印中我們可以知道,他并沒有另開線程,而是運行在UI線程當中,當你要取消定時器的時候,只需要調用handler.removeCallbacks(runnable)就可以了。
上面中有一個問題,有時候你會發現removeCallbacks有時候會失效,不能從消息隊列中移除,看下面的demo

圖:兩個按鈕,一個將Runnable加到消息隊列中,一個將Runnable從消息隊列中移除。該Runnable每1秒鐘打印一次日志。
復制代碼 代碼如下:

<SPAN style="FONT-FAMILY: Courier New">package com.example.demoactivity;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class TimerActivity extends Activity{
Handler handler = new Handler();
Runnable runnable = new Runnable() {

@Override
public void run() {
System.out.println("update...");
handler.postDelayed(runnable, 1000);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.timer);

Button mButtonStart = (Button) findViewById(R.id.button1);
Button mButtonStop = (Button) findViewById(R.id.button2);

mButtonStart.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
handler.post(runnable);
}
});

mButtonStop.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
handler.removeCallbacks(runnable);
}
});
}

}</SPAN><SPAN style="FONT-FAMILY: Georgia, 'Times new roman', Times, san-serif">
</SPAN>

結果:
(1)start 主站蜘蛛池模板: 欧美日本高清 | 国产成人精品大尺度在线观看 | 亚洲欧美日韩另类精品一区二区三区 | 青草视频在线免费观看 | 中文字幕精品一区 | 中字一区 | 韩国av片在线观看 | 日日夜夜精品网站 | 国产精品久久久久久无遮挡 | 国产精品久久久久久亚洲调教 | 欧美成人在线免费观看 | 久久久亚洲一区 | 97成人在线视频 | 午夜精品一区 | 午夜精品久久久久久久蜜桃app | 超碰97av | 一本色道久久综合狠狠躁的推荐 | 色在线免费视频 | 欧美久久大片 | 欧美一区成人 | 成人免费xxxxx在线视频软件 | 成人精品视频在线 | av在线天堂 | 久久草在线视频 | 理论片一区 | 中文字幕一区二区三区在线视频 | 手机看片福利一区 | 精品国产一区二区三区粉芽 | 日韩一区二区三区精品 | 91色视频在线观看 | 精品国产不卡一区二区三区 | 播色网| 欧美成人久久 | 免费观看一级特黄欧美大片 | 狠狠色伊人亚洲综合成人 | 69av.com| 午夜资源| 欧美色图一区 | 成人精品一区二区三区 | 国产一区 | 天天射影院 |