<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      安卓筆記俠

      專注安卓開發

      導航

      用Service+Broadcast解決倒計時過程中Activity被銷毀的問題

      主要思想是這樣的:將倒計時CountDownTimer放在Service里面進行,每過一秒就一條發廣播,在主Activity里注冊廣播,收到廣播后更新UI。

      一、寫一個類CodeTimerService繼承自Service,重寫onStartCommand(...)方法。

       1 @Override  
       2     public int onStartCommand(Intent intent, int flags, int startId) {  
       3   
       4         // 第一個參數是總時間, 第二個參數是間隔  
       5         mCodeTimer = new CountDownTimer(60000, 1000) {  
       6             @Override  
       7             public void onTick(long millisUntilFinished) {  
       8                 // 廣播剩余時間  
       9                 broadcastUpdate(IN_RUNNING, millisUntilFinished / 1000 + "");  
      10             }  
      11   
      12             @Override  
      13             public void onFinish() {  
      14                 // 廣播倒計時結束  
      15                 broadcastUpdate(END_RUNNING);  
      16                 // 停止服務  
      17                 stopSelf();  
      18             }  
      19         };  
      20         // 開始倒計時  
      21         mCodeTimer.start();  
      22         return super.onStartCommand(intent, flags, startId);  
      23     }  
      24   
      25     // 發送廣播  
      26     private void broadcastUpdate(final String action) {  
      27         final Intent intent = new Intent(action);  
      28         sendBroadcast(intent);  
      29     }  
      30   
      31     // 發送帶有數據的廣播  
      32     private void broadcastUpdate(final String action, String time) {  
      33         final Intent intent = new Intent(action);  
      34         intent.putExtra("time", time);  
      35         sendBroadcast(intent);  
      36     }  

      先了解一下CountDownTimer怎么用:
      創建CountDownTimer實例時傳入兩個參數,第一個參數是總時間, 第二個參數是間隔;需要重寫onTick(long millisUntilFinished)和onFinish()兩個回調方法,前者表示倒計時進行中,后者表示倒計時結束,在方法中寫處理事件;最后調用start()方法開始倒計時。

       

      二、在主Activity中注冊廣播,接收廣播,更新UI

      // 注冊廣播  
          private static IntentFilter updateIntentFilter() {  
              final IntentFilter intentFilter = new IntentFilter();  
              intentFilter.addAction(RegisterCodeTimerService.IN_RUNNING);  
              intentFilter.addAction(RegisterCodeTimerService.END_RUNNING);  
              return intentFilter;  
          }  
       // 廣播接收者  
          private final BroadcastReceiver mUpdateReceiver = new BroadcastReceiver() {  
              @Override  
              public void onReceive(Context context, Intent intent) {  
                  final String action = intent.getAction();  
                  switch (action) {  
                      case RegisterCodeTimerService.IN_RUNNING:  
                          if (btnCountdown.isEnabled())  
                              btnCountdown.setEnabled(false);  
                          // 正在倒計時  
                          btnCountdown.setText("倒計時中(" + intent.getStringExtra("time") + ")");  
                          Log.e(TAG, "倒計時中(" + intent.getStringExtra("time") + ")");  
                          break;  
                      case RegisterCodeTimerService.END_RUNNING:  
                          // 完成倒計時  
                          btnCountdown.setEnabled(true);  
                          btnCountdown.setText(R.string.countdown);  
        
                          break;  
                  }  
              }  
          };  
          @Override  
          protected void onResume() {  
              super.onResume();  
              // 注冊廣播  
              registerReceiver(mUpdateReceiver, updateIntentFilter());  
          }  
        
          @Override  
          protected void onPause() {  
              super.onPause();  
              // 移除注冊  
              unregisterReceiver(mUpdateReceiver);  
          }  

      最后補上例子的源代碼:跨Activity的倒計時源代碼

       

      posted on 2018-05-26 14:35  安卓筆記俠  閱讀(775)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 玩弄丰满少妇人妻视频| 日夜啪啪一区二区三区| 亚洲一区二区av免费| 麻豆蜜桃伦理一区二区三区| 日韩全网av在线| 成人啪精品视频网站午夜| 福利一区二区不卡国产| A级毛片100部免费看| 亚洲中文字幕无码中字| 亚洲粉嫩av一区二区黑人| 九九久久精品国产免费看小说 | 最新偷拍一区二区三区| 国产精品久久毛片| 欧美日韩v| 国产老熟女视频一区二区| 日本一本正道综合久久dvd | 郸城县| 性色av无码不卡中文字幕| 五月丁香啪啪| 昭觉县| 精品久久人人妻人人做精品| 人妻无码ΑV中文字幕久久琪琪布| 国产精品中文字幕av| 精品无码人妻一区二区三区 | 在线高清免费不卡全码| 日韩人妻无码中文字幕视频| 高清无码18| 国产精品不卡一区二区三区 | 北海市| 国产高清精品在线一区二区 | 亚洲精品一区二区三天美| 性欧美VIDEOFREE高清大喷水| 国产亚洲精品久久久网站好莱| 国产精品久久久久久久久久直播| 亚洲精品专区永久免费区| 久久精品av国产一区二区| 欧美性xxxxx极品| 国产精品乱人伦一区二区| 国产精品揄拍100视频| 国产亚洲精品久久久久久久软件| 少妇xxxxx性开放|