Android 跟踪一项活动';国家信息

Android 跟踪一项活动';国家信息,android,Android,我正在开发Android应用程序,对活动堆栈专门处理状态信息的方式有点困惑。我查看了有关该事项的活动文档,发现: 如果某个活动位于屏幕前景(堆栈顶部),则该活动处于活动状态或正在运行 如果某个活动已失去焦点但仍可见(即,新的非全尺寸或透明活动的焦点位于活动顶部),则该活动将暂停。暂停的活动完全处于活动状态(它维护所有状态和成员信息,并保持与窗口管理器的连接),但在内存极低的情况下,系统可能会终止该活动 如果一个活动被另一个活动完全遮挡,则该活动将停止。它仍然保留所有的状态和成员信息,但是,它对用

我正在开发Android应用程序,对活动堆栈专门处理状态信息的方式有点困惑。我查看了有关该事项的活动文档,发现:

如果某个活动位于屏幕前景(堆栈顶部),则该活动处于活动状态或正在运行

如果某个活动已失去焦点但仍可见(即,新的非全尺寸或透明活动的焦点位于活动顶部),则该活动将暂停。暂停的活动完全处于活动状态(它维护所有状态和成员信息,并保持与窗口管理器的连接),但在内存极低的情况下,系统可能会终止该活动

如果一个活动被另一个活动完全遮挡,则该活动将停止。它仍然保留所有的状态和成员信息,但是,它对用户不再可见,因此它的窗口被隐藏,当其他地方需要内存时,它通常会被系统杀死

如果某个活动被暂停或停止,系统可以通过要求该活动完成或简单地终止其进程,将其从内存中删除。当它再次向用户显示时,必须完全重新启动并恢复到以前的状态

我有一个名为SongList的活动,它只从另一个活动启动,并且出于启动它的目的,接收一些状态信息。它还可以将用户移动到其他几个单独的活动中,但每个活动都有一个返回按钮,该按钮将用户带回歌曲列表,并使用moveTaskToBack(true)实现

我的问题是如何知道歌曲列表中的状态变量发生了什么?由于没有一个后退按钮实际携带状态信息,因此,如果用户继续进行这些其他活动,当他们回击时,它可能不会将他们带回歌曲列表,或者丢失了所有状态信息,因此工作不正常。我需要手动处理保存所有这些状态信息吗

有人能为我指出解决这个问题的正确方向吗?或者,请告诉我在解决我的问题的文档中可能遗漏的任何内容

提前谢谢

阿夫塔

它还可以将用户移动到其他几个单独的活动中,但每个活动都有一个返回按钮,该按钮将用户带回歌曲列表,并使用moveTaskToBack(true)实现

请允许正常的“后退”按钮处理(这是
finish()
,而不是
moveTaskToBack()
)发生,除非您有很好的理由这样做。从统计学上讲,你不太可能有很好的理由去做其他事情

我的问题是如何知道歌曲列表中的状态变量发生了什么

“歌曲列表中的状态变量”是什么

如果您指的是启动此
歌曲列表
副本的
Intent
extra,那么它们应该仍然在那里,好吗

由于没有一个后退按钮实际携带状态信息,因此,如果用户继续进行这些其他活动,当他们回击时,它可能不会将他们带回歌曲列表,或者丢失了所有状态信息,因此工作不正常

你混乱的背部处理(见我的开头一段)可能会给你带来困难,这是完全可能的。正常情况下,“后退”按钮处理时,
Intent
extra不是问题


如果您的状态超出了这些附加值,您需要使用
onSaveInstanceState()
onRestoreInstanceState()
来管理这些状态,以防Android破坏
SongList
,从而释放内存并处理配置更改(屏幕旋转、放在桌面基座中等).

使用保存的实例状态捆绑检查处理活动状态/信息