后延迟方法 – Android
作者:互联网
我使用了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();
}
解决方法:
您可以使用您正在调用postDelayed()方法的处理程序的removeCallbacks(runnable)方法.例如,如果您使用:
mHandler.postDelayed(mRunnable, mTime)
刷新活动,然后使用
mHandler.removeCallbacks(mRunnable)
在活动的onPause()方法中.
标签:postdelayed,android,android-intent,android-activity 来源: https://codeday.me/bug/20191009/1876910.html