如何恢复暂停的Android应用程序(app not Activity)

时间:2011-05-24 17:34:25

标签: android xamarin.android

如何将我的Android应用恢复到最后的位置,即视图中的活动等?如果我正在显示活动并按下主页按钮,然后再次启动我的应用程序,则返回启动活动。我希望它像iPhone应用程序一样工作,它可以暂停到原地,然后恢复到用户最后的位置。

谢谢。

3 个答案:

答案 0 :(得分:5)

您可能需要为清单中的根活动设置android:alwaysRetainTaskState =“true”。来自文档:

  

是否处于任务状态   活动所在的将永远是   由系统维护 - 如果是“真实”   如果是系统,它将是“假”   允许将任务重置为其   在某些情况下的初始状态。   默认值为“false”。这个   属性仅对于有意义   任务的根活动;它被忽略了   所有其他活动。

     

通常,   系统清除任务(删除所有   来自堆栈上方的活动   在某些情况下的根活动   当用户重新选择该任务时   从主屏幕。通常,这   如果用户没有访问过,则完成   任务一段时间,   比如30分钟。

     

然而,当这个   属性为“true”,用户将永远   返回上一个状态的任务,   无论他们如何到达那里。这个   很有用,例如,在   应用程序像Web浏览器在哪里   有很多州(如   用户可以使用多个打开的选项卡   不喜欢失去。

答案 1 :(得分:2)

请务必在onPause方法中保存所需的任何信息,并在onResume中检查该信息。这将让应用重新加载任何已传达的信息。一些小部件保持状态,但其他小部件不保持状态。

此外,当一个活动被杀死时,它会调用onSaveInstanceState方法。因此,任何需要存储到持久性内存的东西都应该在那里完成。

答案 2 :(得分:2)

虽然我正在使用Mono for Android,但我遇到了类似的问题。

经过一段时间在网上研究后,您可以使用单例模式设置要创建的活动。这将导致您的应用只创建一个实例 - 如果您返回活动 - 这将为您加载该活动的最后一个状态。

您可以通过使用

配置活动来完成此操作

android:alwaysRetainTaskState="true"

 android:launchMode="singleTask" //(preffered, or "singleInstance")

性质。

Singletask是最好的,因为singleInstance更适合基于单活动的应用程序。

在我的情况下设置启动模式使我的摇滚乐如我所愿,但我不知道这是根据Android的Android或Android问题的Mono ..

请注意:如果您想在某个时刻创建活动的干净/新鲜/新实例,则需要创建初始化方法或类似的东西。