自己想看网上练习做一个 起始页 倒计时5秒之后 跳转到后面一页 可以跳过
但是我按跳过之后 倒计时不知道为什么还没有结束 之后就跳转了第2遍。
下面贴代码
package com.sicp.animeappczl;
import java.util.Timer;
import java.util.TimerTask;
import com.sicp.animeappczl.R;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;
public class StartActivity extends Activity implements View.OnClickListener {
private int recLen = 5;//跳过倒计时提示5秒
private TextView tv;
Timer timer = new Timer();
private Handler handler;
private Runnable runnable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//隐藏标题栏
int flag= WindowManager.LayoutParams.FLAG_FULLSCREEN;
requestWindowFeature(Window.FEATURE_NO_TITLE);
//设置当前窗体为全屏显示
getWindow().setFlags(flag, flag);
setContentView(R.layout.activity_start);
initView();
timer.schedule(task, 1000, 1000);//等待时间一秒,停顿时间一秒
/**
* 正常情况下不点击跳过
*/
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
Intent intent=new Intent(StartActivity.this,MainActivity.class);
startActivity(intent);
finish();
}
},5500);
}
private void initView() {
tv = (TextView) findViewById(R.id.tv);//跳过
tv.setOnClickListener((OnClickListener) this);//跳过监听
}
TimerTask task = new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() { // UI thread
@Override
public void run() {
recLen--;
tv.setText("跳过 " + recLen);
if (recLen < 0) {
timer.cancel();
tv.setVisibility(View.GONE);//倒计时到0隐藏字体
}
}
});
}
};
/**
* 点击跳过
*/
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.tv:
//从闪屏界面跳转到首界面
Intent intent = new Intent(StartActivity.this, MainActivity.class);
startActivity(intent);
finish();
if (runnable != null) {
handler.removeCallbacks(runnable);
}
break;
default:
break;
}
}
}