Android中如何實現時間停止與進行

我之前是在handle的handleMessage中控制時間每隔一秒更新一下的,但是我發現在使用handle的post和removeCallbacks控制線程時,時間根本沒有停止而且隨着多次按暫停按鈕,它更新的次數越來越快了。
後來我發現在線程把消息給handle之後,它就結束了,之後我又開啓了新的線程,之後handle又是延遲1秒發送消息,之後,消息就會不足1秒就拿到了,所以更新越來越快。
在這裏插入圖片描述
解決方法,在線程中延遲發送:

    Thread update_thread=new Thread(new Runnable() {
        @Override
        public void run() {
            Message msg = Message.obtain();
            msg.what = UPDATE_CLOCK;
            handler.sendMessage(msg);
            //延遲一秒發送
            handler.postDelayed(update_thread,1000);
        }
    });
...
//開啓線程
handler.post(update_thread);
//切換狀態
case R.id.stop:
                if(isStart){
                    stop.setBackgroundResource(start);
                    isStart=false;
                    //移除線程
                    handler.removeCallbacks(update_thread);
                }else{
                    stop.setBackgroundResource(R.drawable.stop);
                    isStart=true;
                    handler.post(update_thread);
                }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章