0
我有这样的代码应用程序调用的onPause()的时候我打电话super.finish()
@Override
protected void onResume() {
super.onResume();
if (Config.SPLASH_ENABLED)
{
mHandler = new Handler();
mHandler.postDelayed(mRunnable, SPLASH_DISPLAY_LENGTH);
}
else
{
doLogin();
}
}
所以,当我按下后退按钮关闭它的第一个活动,但随后开始第二个这样我就可以启动这个在同一时间超过1个应用程序。然后我决定重写onBackPressed()
方法。
@Override
public void onBackPressed() {
mHandler.removeCallbacks(mRunnable);
super.finish();
}
它没有帮助。重写onPause()
方法这样
@Override
protected void onPause() {
mHandler.removeCallbacks(mRunnable);
super.onPause();
}
后它的工作,但我实在无法理解。为什么它覆盖onPause()
方法后?
但是,如果我在onBackPressed()中为处理程序调用removeCallbacks(),那么为什么它会启动第二个活动? –
SPLASH_DISPLAY_LENGTH是多少?也许是很小的,有时你可以在执行线程的动作之前按回键。 – Narkha
它等于1500毫秒。好吗? –