--> 我在我的第一个活动中实现了线程。并且还使用了进度对话框。所以现在在定向期间(仅限该屏幕),我的应用程序崩溃 - 出现内存泄漏异常。作为一个解决方案,我从这里只知道我应该把
android:configChanges="keyboardHidden|orientation"
但是现在我的那个活动的 onCreate() 方法没有被调用,我有必要在orientationChanges上调用这个方法。那么在这个阶段我应该怎么做呢?
--> 我在我的第一个活动中实现了线程。并且还使用了进度对话框。所以现在在定向期间(仅限该屏幕),我的应用程序崩溃 - 出现内存泄漏异常。作为一个解决方案,我从这里只知道我应该把
android:configChanges="keyboardHidden|orientation"
但是现在我的那个活动的 onCreate() 方法没有被调用,我有必要在orientationChanges上调用这个方法。那么在这个阶段我应该怎么做呢?
将此添加到您的清单文件中
android:screenOrientation="landscape" or android:screenOrientation="portrait"
例子 :
<activity android:name=".SomeActivity"
android:label="@string/app_name"
android:screenOrientation="portrait">
看看这个博客:
stackoverflow 上还有其他类似的问题: How to handle screen orientation change when progress dialog and background thread active?
我经历过,如果使用第一个选项,模拟器有一个错误,它会调用 onCreate() 两次 - 导致崩溃,但在真实设备上应该不是问题。
你真的想为你的应用处理方向变化吗?
如果没有,您可以screenOrientation
在 manifest.xml 文件中设置该属性,这样无论您的手机方向如何,您的应用都会保持该方向。
如果你这样做了,你应该重写这个方法public void onConfigurationChanged (Configuration newConfig)
,在这里你可以为你的应用处理配置(方向,键盘隐藏等)更改。如果您不覆盖它,系统将简单地关闭您的应用程序并重新启动它。这将导致内存泄漏。