在android中使用moveTaskToBack()方法的目的是什么?

时间:2012-11-02 14:31:28

标签: android android-activity

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

当我按下后退按钮时,活动仍然可见。后退键不起作用。我在这做错了什么?我想回到之前的活动。

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

3 个答案:

答案 0 :(得分:14)

moveTaskToBack的目的:

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

  

moveTaskToBack(boolean nonRoot)

     

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

你能做的是:

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

也许这样:Android: Go back to previous activityonBackPressed()super.OnBackPressed();中有类似内容 还要确保当你按下后退按钮时,你实际上正在使用这种方法。

答案 1 :(得分:2)

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

答案 2 :(得分:0)

在更新代码之前,当我想在这种情况下关闭我的应用时,我发生了意外的事情。

  

启动-> isSignIn(是)-> MainActivity->按Back->关闭。


  

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


  

启动-> isSignIn(是)-> MainActivity->按退出->   SignInActivity->按Back-> SignInActivity->按Back->   SignInActivity(依此类推,并停留在SignInActivity上,直到我   按历史记录/最近的应用程序/主页按钮。


  

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

现在,我同时在具有“登录”按钮的SignInActivity和具有“退出”按钮的MainActivity上提供此代码。

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

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