一种android定时器写法

来源:互联网 发布:nginx 上传文件 编辑:程序博客网 时间:2024/06/07 00:42

先定义定时器,只要启动一下四行代码,定时器则开始,并且在等待8秒后才触发一次,且仅此一次。


               mHandler nHandler = new mHandler();

                Message msg = new Message();
                msg.what = 0x123;

                nHandler.sendMessageDelayed(msg, 8000);


当启动以上代码,8秒钟后进入定时器内部类函数


class mHandler extends Handler {
 @Override
  public void handleMessage(Message msg) {
    if (msg.what == 0x123) {


                  new AlertDialog.Builder(getActivity())
                    .setMessage("是否已经上车")
                    .setPositiveButton("是", new DialogInterface.OnClickListener() {
                      @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Toast.makeText(getActivity(), "已经上车", Toast.LENGTH_SHORT).show();
                     }
                })

                 .setNegativeButton("否", new DialogInterface.OnClickListener() {
                    @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Toast.makeText(getActivity(), "还没上车", Toast.LENGTH_SHORT).show();
                          }
                 })

                  .show();


     }
   }
}


需要定时器的话,可结合以下程序使用:

private Runnable runnablereturn = null;private Handler handlblereturn = new Handler();

runnablereturn = new Runnable() {         @Override         public void run() {            handlblereturn.postDelayed(this, 3000);            mHandler nHandler = new mHandler();            Message msg = new Message();            msg.what = 0x129;            //nHandler.sendMessageDelayed(msg, 8000);            nHandler.sendMessage(msg);         }      };      handlblereturn.postDelayed(runnablereturn, 3000);   }}


handlblereturn.removeCallbacks(runnablereturn);

0 0