Handler和Timer实现倒计时跳转页面
2017-06-19 20:40
344 查看
我们在app的导航页应用到倒计时3秒进入主页,并且是第一次进入的时候显示该导航页,第二次进入的时候直接进入主页
此处我们可以使用handler+sharedpreferences 或者timer+sharedpreferences实现效果
话不多说,直接上代码
首先,我们简单的写两个activity的布局,用于跳转
简单的写一个textview用于显示倒计时秒数
我用两种方式都可以实现倒计时效果,是不是so easy!
此处我们可以使用handler+sharedpreferences 或者timer+sharedpreferences实现效果
话不多说,直接上代码
首先,我们简单的写两个activity的布局,用于跳转
简单的写一个textview用于显示倒计时秒数
public class StartActivity extends AppCompatActivity { private TextView jump;
private SharedPreferences mSp; private SharedPreferences.Editor mEdit;Timer timer=new Timer(); //利用timer实现倒计时跳转
int c=3;
TimerTask task=new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() { //子线程不能更新UI,将逻辑写在runOnUiThread内 @Override
public void run() {
jump.setText("还有"+c+"秒跳转");
c--; //定义一个变量c作为倒计时间
if (c<0){
timer.cancel(); //利用Intent实现跳转
Intent intent = new Intent(StartActivity.this, MainActivity.class);
startActivity(intent);
finish();
}
}
});
} };
Handler handler=new Handler(){ //利用handler实现倒计时跳转 @Override public void handleMessage(Message msg) { switch (msg.what) { case 0: jump.setText("还有"+c+"秒跳转"); c--; if (c<0){ Intent intent = new Intent(StartActivity.this, MainActivity.class); startActivity(intent); finish(); }else { //倒计时间<0秒时进行跳转,否则继续发消息进行更新UI handler.sendEmptyMessageDelayed(0,1000); } mEdit.putBoolean("first",false); //sharedpreferences存第一次进入该界面的boolean状态值 mEdit.commit(); break; default: break; } } };
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_start); initView(); //初始化控件 timer.schedule(task,1000,1000); mSp = getSharedPreferences("first", MODE_PRIVATE); //初始化sp对象 boolean first = mSp.getBoolean("first", true); //取sp的值,如果是true,代表第一次进入,否则直接跳转 if (first){ handler.sendEmptyMessageDelayed(0,1000); }else { Intent intent = new Intent(StartActivity.this, MainActivity.class); startActivity(intent); finish(); } mEdit = mSp.edit(); //初始化sp编辑器edit对象 } private void initView() { jump = (TextView) findViewById(R.id.jump); //根据ID找控件 } }
我用两种方式都可以实现倒计时效果,是不是so easy!
相关文章推荐
- Jquery实现倒计时跳转到指定页面或关闭窗口
- asp.net中倒计时自动跳转页面的实现方法(使用javascript)
- javascript实现倒计时跳转页面
- 使用Handler延迟简单实现欢迎页面的跳转
- JS实现倒计时三秒跳转后到新页面
- asp.net中实现倒计时自动跳转页面(运用javascript)
- javascript实现页面倒计时跳转
- jsp页面实现倒计时自动跳转
- js实现 页面显示系统时间(中文显示星期)、动态倒计时页面跳转
- Android简易实战教程--第四十八话《Android - Timer、TimerTask和Handler实现倒计时》
- 【转】js倒计时并实现页面跳转
- js实现页面跳转倒计时
- js 实现5秒倒计时后跳转页面
- 简单handler实现闪屏页面跳转
- js实现倒计时跳转页面
- Javascript 实现倒计时跳转页面代码
- Android 定时任务之Timer和Handler实现倒计时效果(附:adapter列表倒计时)
- jsp实现页面倒计时跳转到指定页面
- JavaScript实现倒计时跳转页面功能【实用】
- js实现浏览器倒计时跳转页面效果