在我的应用程序中,我使用ImgButton调用第二个Activity,该调用onClick()调用相机意图。拍完照片后,回到我的活动中,我会显示一个AlertDialog Box,用户可以选择是否拍摄更多照片。在我的清单中,我将第二个活动的方向锁定为肖像,因为如果我旋转设备,则AlertBox消失:
<activity android:name="SecondActivity"
android:screenOrientation="portrait"></activity>
在我的Mannifest中,我还补充道:
android:configChanges="orientation|keyboardHidden"
和全屏模式
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
如果我拍摄照片并从纵向模式关闭相机意图(不旋转设备),则会出现2个不同设备的问题:
HTC Desire:一切正常,我保存应用程序状态并恢复它们,如果我从相机返回到我的活动:D
Galaxy S3 *:sgs3上的摄像头似乎在横向模式下默认运行?因此,如果你回到我的活动,我的活动的显示内容是在横向模式下眨眼,并返回到纵向模式。但是在方向改变之前显示AlertDialog,因此AlertDialog在不希望的旋转之前消失(因此我只能在横向模式下看到AlertBox 0秒,然后旋转切换回纵向模式)...
如果我从横向模式结束相机意图,无论在哪个设备上,问题都与sgs3 *相同。
从相机返回活动后如何防止此屏幕旋转?在这个不受欢迎的方向改变后,我可以简单地显示AlertBox吗?如果是这样我怎么能这样做?还是其他解决方法?
谢谢,抱歉我的英语不好...... xD
答案 0 :(得分:0)
我自己解决了问题:我只是把
AlertDialog [...]显示();
进入onResume()
活动,因此如果我从相机意图返回到我的活动,则AlertDialog会随着屏幕旋转而不是消失。
这会导致WindowManager
“[包名]泄露窗口......”
但最终它按我的意愿工作,应用程序不会崩溃...
不确定这是否是最佳和正确的解决方案,但它确实有效。