Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 覆盖背面按下?_Android - Fatal编程技术网

Android 覆盖背面按下?

Android 覆盖背面按下?,android,Android,如果我错了,请纠正我 “moveTaskToBack(false/true);”与活动的可见性无关,但与活动堆栈有关,因为在stackoverflow上,我发现很多人对此感到困惑 现在我的设想是: 有两个活动A和B A是根活动 B从活动A启动 问题是,我不希望在按下后退按钮后,我的活动B被终止,(我只希望它是不可见的,活动A是可见的,这将自行发生),这样我就可以在之后恢复它的状态 所以在搜索了一点之后,我了解了 moveTaskToBack(假);, 这似乎是解决方案,因为它不会杀死活动(因为活

如果我错了,请纠正我 “moveTaskToBack(false/true);”与活动的可见性无关,但与活动堆栈有关,因为在stackoverflow上,我发现很多人对此感到困惑

现在我的设想是: 有两个活动A和B A是根活动 B从活动A启动

问题是,我不希望在按下后退按钮后,我的活动B被终止,(我只希望它是不可见的,活动A是可见的,这将自行发生),这样我就可以在之后恢复它的状态

所以在搜索了一点之后,我了解了 moveTaskToBack(假);,
这似乎是解决方案,因为它不会杀死活动(因为活动不会发送回活动堆栈中),但唯一的问题是。它与根活动一起工作,因此在我的情况下不起作用。因此,是否有任何替代方案可用于“非根”活动,这样活动状态就恢复了….

我想你误解了

public boolean moveTaskToBack(布尔非根)

在API级别1中添加

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

参数

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

返回

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

默认情况下,“后退”按钮将返回到上一个活动。它是从后堆栈中弹出的活动,而堆栈中的前一个活动占据焦点

onPause
中保存活动状态,在
onCreate
onResume
中恢复活动状态。要永久存储值,请选中下面的存储选项链接

您可能希望在下面的链接中通过Commonware检查答案


是的,您误解了movetobackstack。它将包含活动的任务移动到活动堆栈的后面。至于使活动不可见,您误解了生命周期以及任务和后台堆栈的工作方式@谢谢,这是一个更好的答案…请将您的评论作为答案输入,以便我可以接受它,并在后台活动被破坏时加1分。在
onPause
中保存您的值,并在恢复时将其还原。要存储值,您可以查看android中的存储选项。但我的情况很复杂。活动A首先向活动b发送一些数据,这些数据是一个列表。因此,一段时间后,数据可能会更改。这是我的场景活动a生成所有歌曲的列表。我按一首特定歌曲。活动B接收数据并播放歌曲,比如说第一首歌曲,在歌曲1完成后播放歌曲2,现在我按后退按钮?保存歌曲2的当前位置和详细信息,现在我返回活动a并播放另一首歌曲,接下来会发生什么?不会播放第二首歌?或者我可以用某种方法处理这个问题吗?让我们看看你能帮我吗????