【问题标题】:Running code when activity closes活动关闭时运行代码
【发布时间】:2014-02-24 00:59:50
【问题描述】:

您好,我需要在 Activity 关闭后运行一些代码,而不是在启动新 Intent 时运行。我怎样才能做到这一点?我已经尝试过onStop()onPause()onDestory(),但所有这些也会在启动新意图时运行代码。我只希望代码在按下后退按钮或应用程序关闭时运行。有什么建议吗?

【问题讨论】:

    标签: java android eclipse android-activity


    【解决方案1】:

    如果您想抓住后退按钮,请将其添加到您的活动中 (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()。

    【讨论】:

      【解决方案2】:

      对于后退按钮,您可以覆盖 onBackPressed

      如果您想知道您的应用是否在 onDestroy 中关闭,您可以使用 this.isFinishing() 进行检查(返回布尔值)。

      【讨论】:

        【解决方案3】:

        你可以重写Activity提供的onBackpressed()方法来实现你想要的。

        【讨论】:

        • 这很好,但是当你进入任务管理器完全关闭应用程序时呢?
        • 你真的无能为力。主要是因为你不能保证 onDestory 会被调用。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多