覆盖onBackPressed?

时间:2013-11-17 12:19:36

标签: android

如果我错了,请纠正我 “moveTaskToBack(假/真);”与Activity的可见性无关,但与Activity Stack有关,因为很多次在stackoverflow上我发现人们对此感到困惑。

现在我的情景: 有两个活动A和B. A是根活动 B从活动A启动

事情是我不希望我的活动B被杀死按下后退按钮后,(只是我希望它不可见,活动A可见,这将发生在它本身可以让我恢复它的状态。

所以在搜索了一下之后我就知道了 moveTaskToBack(假);, 这似乎是解决方案,因为它不会杀死活动(因为活动不会被发送到活动堆栈中),但唯一的问题是。它适用于Root Activity,因此它不适用于我的情况。那么我可以使用“非根”活动的任何替代方案,以便恢复活动的状态....

1 个答案:

答案 0 :(得分:1)

我猜你误解了

public boolean moveTaskToBack (boolean nonRoot)

在API级别1中添加

将包含此活动的任务移动到活动堆栈的后面。任务中的活动顺序不变。

参数

nonRoot如果为false,则仅当活动是任务的根时才有效;如果为true,它将适用于任务中的任何活动。

返回

如果任务被移动(或者它已经在后面),则返回true,否则返回false。

默认情况下,后退按钮会将您带回上一个活动。它弹出来自后栈的活动,并且堆栈中的前一个活动成为焦点。

将活动状态保存在onPause中,将其恢复为onCreateonResume。要持久存储值,请使用以下链接来存储选项。

http://developer.android.com/guide/topics/data/data-storage.html

http://developer.android.com/guide/components/tasks-and-back-stack.html

您可能需要通过以下链接检查commonsware的答案。

https://groups.google.com/forum/#!topic/android-developers/4Pz6LrzVpx0