Android-启动新活动时保存活动状态

Android-启动新活动时保存活动状态,android,android-activity,android-intent,state,task,Android,Android Activity,Android Intent,State,Task,我目前正在使用的应用程序应具有以下行为: 在其中一个活动中,用户可以在列表中选择不同的项目。在进行此操作时,他应该能够拍照、保存并返回到上一个活动 我遇到了以下问题:当用户在拍摄完照片后返回活动时,进度基本上会丢失所选的项目 我尝试在我的活动中使用android:launchMode=singleInstance以及singleTask和android:alwaysRetainTaskState=true来保存它的当前状态,当用户离开应用程序去做其他事情,然后稍后再回来时,它工作得很好。我试图用

我目前正在使用的应用程序应具有以下行为: 在其中一个活动中,用户可以在列表中选择不同的项目。在进行此操作时,他应该能够拍照、保存并返回到上一个活动

我遇到了以下问题:当用户在拍摄完照片后返回活动时,进度基本上会丢失所选的项目

我尝试在我的活动中使用android:launchMode=singleInstance以及singleTask和android:alwaysRetainTaskState=true来保存它的当前状态,当用户离开应用程序去做其他事情,然后稍后再回来时,它工作得很好。我试图用FLAG\u ACTIVITY\u NEW\u任务来模拟我脑海中的某个地方的相同行为,我认为这应该与在主屏幕上使用图片活动是一样的,但没有效果。我甚至尝试与startActivityforResult共进午餐,希望我的活动不会以某种方式丢失,但仍然没有效果

我知道我可以使用Bundle savedInstanceState通过覆盖onPause、onResume、oncreate等手动保存和恢复状态,但实际上自定义组件中有大量数据不容易序列化,因此我希望避免这种情况

我想我的问题是,我如何复制与AlwaysRelatitaskState清单属性相同的行为?或者是否有任何方法可以轻松保存我的活动状态?或者我做错了什么,错过了显而易见的东西

非常感谢

我知道我可以使用Bundle savedInstanceState通过覆盖onPause、onResume、oncreate等手动保存和恢复状态,但实际上自定义组件中有大量数据不容易序列化,因此我希望避免这种情况

你想要什么并不重要。无论如何,您都需要此代码来处理配置更改,例如,从纵向切换到横向。请实现onSaveInstanceState和onRestoreInstanceState,然后退出您在上一段中遇到的所有其他不当攻击,例如singleInstance、AlwaysRetaintasksState

我知道我可以使用Bundle savedInstanceState通过覆盖onPause、onResume、oncreate等手动保存和恢复状态,但实际上自定义组件中有大量数据不容易序列化,因此我希望避免这种情况


你想要什么并不重要。无论如何,您都需要此代码来处理配置更改,例如,从纵向切换到横向。请实现onSaveInstanceState和onRestoreInstanceState,然后退出上一段中所有其他不适当的攻击,例如singleInstance、AlwaysRetaintasksState。

显然,我喜欢的是应用程序的要求。关于那些不恰当的黑客,也许我没有抓住重点,但为什么它们会不恰当呢?他们喜欢避免的事情吗?对我来说似乎很整洁,但是,再一次,也许我错过了一些信息。如果当我回到主屏幕和应用程序时,我能从他们那里得到我想要的行为,那么如果我从我的活动中启动应用程序,我会发现同样的事情,这真的很糟糕吗?@我们的:他们像是要避免的事情吗?-文档明确指出,singleInstance不适用于大多数应用程序,引用的段落以红色突出显示。alwaysRetainTaskState=true对于其预期用途来说是不错的,但它不应该是正确保存实例状态的某种灵丹妙药。Ok。但这并不意味着对我来说不合适。所有这些都不能解决我的问题。无论如何,谢谢你的回答和建议。很明显,我喜欢的是应用程序的要求。关于那些不恰当的黑客,也许我没有抓住重点,但为什么它们会不恰当呢?他们喜欢避免的事情吗?对我来说似乎很整洁,但是,再一次,也许我错过了一些信息。如果当我回到主屏幕和应用程序时,我能从他们那里得到我想要的行为,那么如果我从我的活动中启动应用程序,我会发现同样的事情,这真的很糟糕吗?@我们的:他们像是要避免的事情吗?-文档明确指出,singleInstance不适用于大多数应用程序,引用的段落以红色突出显示。alwaysRetainTaskState=true对于其预期用途来说是不错的,但它不应该是正确保存实例状态的某种灵丹妙药。Ok。但这并不意味着对我来说不合适。所有这些都不能解决我的问题。无论如何,谢谢你的回答和建议。