Tom*_*omb 13 camera android galaxy android-activity
所以,在这个论坛上已经以多种形式提出了这个问题,但没有一个答案对我有所帮助.我有一个我只能在三星Galaxy S3上重现的错误.
我想简单地使用手机的相机拍摄并存储照片,但在我从onActivityResult收到回复之前,我的活动正在被销毁.这只发生在我以纵向模式使用相机时,在横向模式下它很好.
我正在使用此代码启动相机:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, Config.ACTIVITY_TAKE_PHOTO);
Run Code Online (Sandbox Code Playgroud)
在纵向模式下,我从未看到对onActivityResult的调用(来自Camera活动),我只看到在我的启动活动中调用的onDestroy().日志中没有异常或错误,并且没有明显错误使其崩溃.
我看过帖子建议在Manifest中添加"android:configChanges ="orientation | keyboardHidden"",并做很多其他事情来管理使用相机时发生的方向变化,但到目前为止没有任何帮助.
还有其他人解决了这个问题吗?
dis*_*han 19
如果您的目标超出API级别13,则添加
android:configChanges="orientation|keyboardHidden"
Run Code Online (Sandbox Code Playgroud)
到清单是不够的.
从Android文档中查看此摘录
注意:如果您的应用程序的目标是13级或更高级别的API(由minSdkVersion和targetSdkVersion属性声明),那么您还应该声明"screenSize"配置,因为当设备在纵向和横向之间切换时它也会发生变化.
因此尝试添加
android:configChanges="orientation|keyboardHidden|screenSize"
Run Code Online (Sandbox Code Playgroud)
到您的清单文件.这应该可以解决您的问题.
Android 在某些场景下可以调用 destroy() 方法。一种是当我们使用 finish() 方法时。另一种方法是使用 Activity 类中的 isFinishing () 方法。如果确实正在最终确定,则可以最终确定其资源,否则,您可以将 \xe2\x80\x8b\xe2\x80\x8 的值保留为继承 Application 的类
\n\n@Override\nprotected void onDestroy() {\n\n final YourApp app = (YourApp) getApplicationContext();\n if (app != null && isFinishing()) {\n app.finalizeAppResources();\n }\n\n // ...\n\n super.onDestroy();\n}\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
6011 次 |
最近记录: |