Androidでは、Handlerがカウントダウンを実現する2つの方法があります。


背景:
最近のプロジェクトでは、この機能ブロックを登録/登録するのにちょうどいいです。認証コードを送ることで、所定の時間内に認証コードを使って登録/登録を完了する必要があります。前のプロジェクトにもこの機能がありましたが、複雑すぎて、自分でもう一度実現します。Handlerで作って、コードの紹介を感じて、ロジックもはっきりしています。
コード1:

//                    ,     :
mHandler.obtainMessage();
mHandler.sendEmptyMessage(MSG_CODE);

//     :
 private static final int MSG_CODE = 0;
 private int limitTime = 121;
 private Handler mHandler = new Handler(new Handler.Callback() {
    @Override
    public boolean handleMessage(Message msg) {
      if(msg.what==MSG_CODE){
        limitTime--;
        if(limitTime>0){
          mHandler.sendEmptyMessageDelayed(MSG_CODE,1000);
          mBtnVerify.setText("   :"+limitTime+"s");

        }else{
          mBtnVerify.setText("     ");
        }
        return true;
      }
      return false;
    }
  });

コード二:

//                    ,     :
mHandler.post(myRunnale);

//     :
 private int time = 11;

  private Handler mHandler = new Handler();
  private Runnable myRunnale = new Runnable() {
    @Override
    public void run() {
      time--;
      if(time>0){
        mHandler.postDelayed(myRunnale,1000);
        mTvChange.setText("  "+time+"s");
      }else{
        mTvChange.setText("  ");
      }
    }
  };

上記のコードから、Handler.postを使うことはMessgaeをリリースするための便利な方法であることが分かります。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。