如何实现闪屏页面 || 循环执行任务

如何实现闪屏页面 || 循环执行任务

ONE Goal ,ONE Passion !

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

一. 定时执行任务:(2种方法)
1. 使用 CountDownTimer ;

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);

     }

},3000);

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

public class TimerActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

       myTimerTask task = new myTimerTask ();

       Timer timer = new Timer();

        timer.schedule(task, 1000, 1000); // 1s后执行task,经过1s再次执行 } // 循环的任务

   private class myTimerTask 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);
        };
    };

}

另:
TimerTask + Timer也可实现闪屏,定义一个全局的time=3s.
 private class TimerTask extends TimerTask {

        @Override
        public void run() {

            time--;
            if(time<=0){
            //执行任务
            }
        }
    };

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

你可能感兴趣的:(闪屏-定时执行任务)