Android 巧妙避免倒计时跳转页面时出现的问题
2017-12-13 20:47
633 查看
在Android开发中,当我们实现导航页倒计时跳转时常会出现这样的问题: 1.计时器正在倒计时的时候点击跳转按钮,会出现跳两次的状况,这是其一; 2.其二,当计时器正在倒计时的时候按返回键,进入桌面后几秒后又进入应用。 以下代码解决了这个问题。方法一: 使用handlerpackage com.example.daohangye;import android.content.Intent;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.RelativeLayout;import android.widget.TextView;public class MainActivity extends AppCompatActivity {int count = 6;private Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);count--;if (count == 0) {Intent intent = new Intent(MainActivity.this, Main2Activity.class);startActivity(intent);} else {handler.sendEmptyMessageDelayed(1, 1000);tv.setText("倒计时:" + count);}}};private TextView tv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv = (TextView) findViewById(R.id.tv);handler.sendEmptyMessage(1);tv.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(MainActivity.this, Main2Activity.class);startActivity(intent);handler.removeMessages(1);}});}@Overrideprotected void onDestroy() {super.onDestroy();handler.removeMessages(1);if (handler != null) {handler = null;}}}
方法二:使用Timer计时器
package com.example.text;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.TextView;import java.util.Timer;import java.util.TimerTask;public class MainActivity extends AppCompatActivity {private TextView tv;private Boolean A=true;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv = findViewById(R.id.ss);tv.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(MainActivity.this, Main2Activity.class);startActivity(intent);A=false;finish();Log.e("TAG",A+"");}});//计时器Timer timer = new Timer();timer.schedule(new TimerTask() {@Overridepublic void run() {if(A==true) {Intent intent = new Intent(MainActivity.this, Main2Activity.class);startActivity(intent);finish();}}},6000);}@Overrideprotected void onDestroy() {super.onDestroy();A=false;}}方法三:使用Handler和runnable
package com.example.mytest;import android.content.Intent;import android.os.Handler;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.widget.Toast;public class MainActivity extends AppCompatActivity {private int count = 4;private Handler mHandler = new Handler();private Runnable mRunnable = new Runnable() {public void run() {count--;setTitle("" + count);if (count==0){setTitle("1");Toast.makeText(MainActivity.this,"跳转",Toast.LENGTH_SHORT).show();startActivity(new Intent(MainActivity.this,Main2Activity.class));}else {// 每3秒执行一次mHandler.postDelayed(mRunnable, 1000); //给自己发送消息,自运行}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Log.e("tag", ""+ "iioioioioioioio");// 通过Handler启动线程mHandler.post(mRunnable); //发送消息,启动线程运行}@Overrideprotected void onDestroy() {//将线程销毁掉mHandler.removeCallbacks(mRunnable);super.onDestroy();}}
相关文章推荐
- 解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
- Android页面最简单的跳转出现的问题
- htm5 页面跳转在android出现的奇葩问题 【已解决】
- android 跳转到收短信页面,就是短信的主页面的问题
- Android混合开发之Activity类与html页面之间的相互跳转(并解决黑屏问题)
- Android——单击实现页面跳转(回答小叶子的问题)
- 关于PHP页面跳转出现SESSION丢失问题
- 解决Android服务器端页面header无法跳转问题
- Android tab_Host页面跳转,传值,刷新等问题汇总
- android跳转界面(页面)发现界面首先出现的是下面的部分,滑动才能看到上面的解决方法
- Android混合开发之Activity类与html页面之间的相互跳转(并解决黑屏有关问题)
- Android 控件设置焦点,防止跳转页面出现焦点不在页面顶部
- Web.config设置Form页面跳转出现问题
- android解决初始加载页面出现带标题的页面问题
- android在非Activity下,intent页面跳转问题
- Android跳转页面出现THe Application has stopped unexpectedly,please try again
- 解决Android服务器端页面header无法跳转问题
- 关于Android的Button响应页面跳转问题
- 【Android】Intent 页面跳转问题以及 会跳刷新 等各种问题汇总
- 关于jquery mobile使用<a href="#"></a>进行页面跳转返回上一页出现空白页问题的解决