30

我在我的活动中使用 moveTaskToBack() 方法。

当我按下后退按钮时,活动仍然可见。后退键不起作用。我在这里做错了什么?我想导航回上一个活动。

public void onBackPressed() {
    // TODO Auto-generated method stub
    moveTaskToBack(true);
    new Finalizer().killApp(false);
    super.onBackPressed();
}
4

3 回答 3

16

moveTaskToBack 的目的:

http://developer.android.com/reference/android/app/Activity.html

moveTaskToBack(布尔非根)

将包含此活动的任务移到活动堆栈的后面。

你可以做的是:

public void onBackPressed() {
    moveTaskToBack(true); // I don't think you're looking for this.
    new Finalizer().killApp(false); // Neither this.
    super.onBackPressed();
}

也许是这样的:Android:返回上一个活动onBackPressed()在你的之后 类似的东西super.OnBackPressed(); 还要确保当你点击你的后退按钮时,你实际上是在这个方法中。

于 2012-11-02T14:41:22.210 回答
4

如果调用super它会触发返回按钮的默认实现,它只是完成当前活动。尝试删除该行super.onBackPressed();,然后查看新行为是否符合您的预期。

于 2012-11-02T14:40:46.343 回答
3

在我更新代码之前,当我想在这些情况下关闭我的应用程序时,一些意想不到的事情发生在我身上。

启动 -> isSignIn(yes) -> MainActivity-> 按返回 -> 关闭。


启动 -> isSignIn(no) -> SignInActivity-> 按返回 -> 关闭。


启动-> isSignIn(是)-> MainActivity->按注销-> SignInActivity->按返回-> SignInActivity->按返回-> SignInActivity(依此类推,SignInActivity直到我按历史记录/最近的应用程序/主页按钮)。


启动 -> isSignIn(no) -> SignInActivity-> Press Sign In -> MainActivity-> Press Sign Out -> SignInActivity-> Press Sign In -> MainActivity-> Press Back -> MainActivity-> Press Back -> MainActivity(依此类推循环并卡住MainActivity直到我按下历史/最近的应用程序/主页按钮)。

SignInActivity现在我在具有登录按钮和MainActivity退出按钮的情况下提供此代码。

@Override
    public void onBackPressed() {
        super.onBackPressed();
        moveTaskToBack(true);
        finish();
    }

它现在在每种情况下都可以正常工作。当我按返回时,应用程序关闭。

于 2019-05-19T15:59:48.667 回答