3

我知道这里这里之前也有人问过这个问题。他们没有正确回答(或根本没有回答)。但是,我不知道为什么moveTaskToBack(true);总是为我返回错误。谁能告诉我为什么以及如何解决问题?提前致谢。

public void onBackPressed() {       
    boolean r=  moveTaskToBack(true);
    //r is false !! using API LEVEL 8
}

注意:我调用它的活动是Activity包含在 a中的子项,tabActivity并且这两者都不是MAINLAUNCHER活动。我不知道这是否会有所不同。

编辑: 因此应用程序不会进入后台。我希望它进入后台,就像按下硬件主页一样

4

3 回答 3

8

我不知道为什么moveTaskToBack(true)要回来false找你。也许你的清单中有一些奇怪的东西?无论如何,您可以这样做来调出主屏幕:

Intent i = new Intent();
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
this.startActivity(i);

但是,请注意此消息

“您无法模拟按下 Home 键。” — Roman Guy,Android 框架工程师

我不确定这与我建议的代码(我在与 Roman 的声明相同的线程上发现并且似乎有效)如何匹配。

于 2013-01-23T07:49:00.437 回答
1

写吧:

@Override
public void onBackPressed() {
    moveTaskToBack(true);
    //  super.onBackPressed();
}
于 2017-08-25T09:21:11.703 回答
0

我遇到了类似的问题(tabActivity 中包含的子 Activity),当您在子活动中调用 moveTaskToBack(true) 时,它不起作用,而在父活动中起作用。您可以像这样在子活动中调用 moveTaskToBack(true): ChildActivity.this.getParent().moveTaskToBack(true)

于 2017-07-04T08:52:09.733 回答