我正在使用this answer从我的Android应用程序启动相机意图(我需要用户能够从相机或图库中选择图像)
但似乎我的整个应用程序都被重新创建了 - 活动的onCreate被调用,其中一个类,即单例,具有toString()值,不同于相机启动前的值。
这也是我在android manifest中的活动描述:
<activity
android:name="xxx"
android:theme="@style/NoActionBarTheme"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name">
</activity>
任何想法出了什么问题?
答案 0 :(得分:0)
确保从“设置”中的“开发者选项”中取消选中“不要保留活动”。
如果您的活动有正确的 launchMode ,请检查您的清单和代码。
答案 1 :(得分:-1)
在某些设备上(我观察到samsung s3),当启动相机应用程序时,设备方向更改为横向&amp;当选择拍摄的照片返回我们的应用程序再次画像。我们的活动再次重新创建。我们最终刚刚开始活动。
在这种情况下,您必须为活动实现以下一对回调。 OnSaveInstanceState()&amp; OnRestoreInstaceState()。 您可以保存成员变量&amp;从相机应用程序返回您的活动时恢复它们。 例如可以保存imagePath(保存摄像头图片所用的位置)。恢复。