mav*_*sha 7 android android-intent postdelayed android-activity
我使用了publishDelayed方法来刷新我的Activity,这很好用.但问题是,即使按下后退按钮后延迟方法,也可以回调上一个活动.
//延迟刷新活动后30000毫秒的处理程序
mHandler.postDelayed(new Runnable() {
public void run() {
dostuff();
}
}, 30000);
}
protected void dostuff() {
Intent intent = getIntent();
finish();startActivity(intent);
Toast.makeText(getApplicationContext(), "refreshed", Toast.LENGTH_LONG).show();
}
public void onBackPressed() {
super.onBackPressed();
finish();
mHandler.removeCallbacks(null);
}
protected void onStop() {
mHandler.removeCallbacks(null);
super.onStop();
}
Run Code Online (Sandbox Code Playgroud)
你只是用这个可能对你有帮助
Runnable runobj=new Runnable() {
public void run()
{
dostuff();
}
};
mHandler.postDelayed(runobj, 30000);
}
public void onBackPressed()
{
super.onBackPressed();
mHandler.removeCallbacks(runobj);
}
Run Code Online (Sandbox Code Playgroud)
解决此问题的方法是:
在执行 dostuff() 方法时,只需检查 Activity.isFinising() 是否执行即可。如果完成了,就返回。
当您按下后退键时,活动将完成,之后如果 doStuff() 执行,它将不会执行任何操作。