定时执行任务(闪屏页面使用) || 循环执行任务

来源:互联网 发布:js复合防水涂料 编辑:程序博客网 时间:2024/06/12 01:47

                                  定时执行任务(闪屏页面使用) || 循环执行任务

       
一.  定时执行任务:(2种方法)
      一般软件在进入程序前一般都会有2s时间显示自己的logo(如微信)或者是广告(黑一下uc).

1.  使用 CountDownTimer + Handler;

 
public class HandlerActivity extends Activity {
   private MyCount mc;
 @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);              mc = new MyCount(30000, 1000);
        mc.start(); //30000ms是倒计时的时间.1000ms是间隔的时间
}

  /* 定义一个倒计时的内部类 */
    class MyCount extends CountDownTimer {
        public MyCount(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
        }
//开始计时时执行的操作
        @Override
        public void onTick(long millisUntilFinished) {
            System.out.println("开始计时");
            Toast.makeText(getApplicationContext(), millisUntilFinished / 1000 + "",
                    Toast.LENGTH_LONG).show();
        }
//计时结束后执行的任务
        @Override
        public void onFinish() {
            System.out.println("完成");
         
        }
    }
  }


2.使用 Handler + postDelayed方法



new Handler().postDelayed(new Runnable(){

   @Override
public void run(){

       //要执行的任务

    Intent intent = new Intent(mContext,要开启的activity);

startActivity(intent);

     }

});



二 . TimerTask + Timer + Handler循环执行任务   (一般用于轮询)

public class TimerActivity extends Activity {     @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);       
       TimerTask task = new TimerTask ();
       Timer timer = new Timer();
timer.schedule(task, 1000, 1000); // 1s后执行task,经过1s再次执行 } // 循环的任务
   private class TimerTask extends TimerTask {        @Override        public void run() {            // 需要做的事:发送消息            Message message = new Message();            message.what = 1;            handler.sendMessage(message);        }    };
// Handler来处理任务
  Handler handler = new Handler() {        public void handleMessage(Message msg) {            if (msg.what == 1) {
//闪屏结束进入主界面             
            }            super.handleMessage(msg);        };    };  

}

轮询,定时执行任务的方法有很多种.以上3种完全够用了.以后有需要会再去补充的.

1 0
原创粉丝点击