import android.content.Intent;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;
import java.lang.ref.WeakReference;
/** 项目说明,这是一个安卓app的引导页.
* 用MyCountDownTimer 实现倒计时现实,用postDelayed实现跳转.
* 在这儿有一个button,实现了监听事件,点击按钮后可以结束MyCountDownTimer 定时器,
*
*
*
*/
public class splashActivity extends AppCompatActivity {
private TextView tv_countDown;
// private RelativeLayout ll_splashActivity;
private Button buttonOne;
private Runnable runnable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
buttonOne = (Button) findViewById(R.id.button_Id);
tv_countDown = (TextView) findViewById(R.id.tv_countDown);
final MyCountDownTimer mc = new MyCountDownTimer(6000, 1000);
mc.start();
/* buttonOne.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//从闪屏界面跳转到首界面
//System.out.println("开启失败!!!!");
//startMainActivity();
if(runnable!=null){
// handler的进程
handler.removeCallbacks(runnable);
}
// 取消定时器
mc.cancel();
// 立刻跳转到MainActivity
startMainActivity();
}
}); */
handler.postDelayed(runnable = new Runnable() {
@Override
public void run() {
startMainActivity();
}, 5000);
}
private void startMainActivity() {
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
// 结束闪屏页的activity
splashActivity.this.finish();
}
private final MyHandler handler = new MyHandler(this);
private static class MyHandler extends Handler {
private WeakReference<splashActivity> weakReference;
public MyHandler(splashActivity activity) {
weakReference = new WeakReference<splashActivity>(activity);
}
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
}
}
// 安卓倒计时
class MyCountDownTimer extends CountDownTimer {
//millisInFuture:倒计时的总数,单位毫秒
//例如 millisInFuture=1000;表示1秒
//countDownInterval:表示间隔多少毫秒,调用一次onTick方法()
//例如: countDownInterval =1000;表示每1000毫秒调用一次onTick()
public MyCountDownTimer(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
public void onFinish() {
// buttonOne.setClickable(true);
tv_countDown.setText("开始跳转……");
}
public void onTick(long millisUntilFinished) {
tv_countDown.setText("倒计时(" + millisUntilFinished / 1000 + ")");
// pass_Id.setText("点击跳过(" + millisUntilFinished / 1000 + ")");
// buttonOne.setClickable(false);
// buttonOne.setText("你好");
}
}
}
加这个属性 FLAG_ACTIVITY_NEW_TASK 看看