【发布时间】:2014-02-24 00:59:50
【问题描述】:
您好,我需要在 Activity 关闭后运行一些代码,而不是在启动新 Intent 时运行。我怎样才能做到这一点?我已经尝试过onStop()、onPause() 和onDestory(),但所有这些也会在启动新意图时运行代码。我只希望代码在按下后退按钮或应用程序关闭时运行。有什么建议吗?
【问题讨论】:
标签: java android eclipse android-activity
您好,我需要在 Activity 关闭后运行一些代码,而不是在启动新 Intent 时运行。我怎样才能做到这一点?我已经尝试过onStop()、onPause() 和onDestory(),但所有这些也会在启动新意图时运行代码。我只希望代码在按下后退按钮或应用程序关闭时运行。有什么建议吗?
【问题讨论】:
标签: java android eclipse android-activity
如果您想抓住后退按钮,请将其添加到您的活动中 (API):
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// your code
return true;
}
return super.onKeyDown(keyCode, event);
}
由于 API 级别 5,您还可以使用 onBackPressed()。
如果您的活动因其他原因进入后台,则应调用 onPause()。您可以检查实例是否被杀死,例如由任务管理器调用isFinishing()。如果它再次来到前台,则调用 onResume()。
【讨论】:
对于后退按钮,您可以覆盖 onBackPressed。
如果您想知道您的应用是否在 onDestroy 中关闭,您可以使用 this.isFinishing() 进行检查(返回布尔值)。
【讨论】:
你可以重写Activity提供的onBackpressed()方法来实现你想要的。
【讨论】: