在我的活动中,我有一个很长的过程,它使用AsyncTask在后台运行。正在运行任务时显示ProgressDialog。这工作正常,但如果用户在任务运行时旋转屏幕,则会发生错误。我希望我的活动在用户旋转屏幕时不会重新启动。
我已将以下内容添加到我的清单文件中,但每次旋转屏幕时仍会调用OnCreate方法。 (已通过在OnCreate中添加了一个破点来确认)
android:configChanges="keyboardHidden|orientation|screenSize"
<activity android:name=".MyActivityName" android:configChanges="keyboardHidden|orientation|screenSize">
有什么建议吗?
答案 0 :(得分:1)
活动在屏幕旋转中经历生命周期,因此它将通过onPause()。
有两种方法可以解决这个问题。
1)在该活动的android:screenOrientation="portrait"
标记下向您的清单添加<activity >
,以防止其更改为横向模式。
2)尝试使用
保存您的应用正在执行的操作@Override
protected void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}
答案 1 :(得分:0)
不要问我怎么做,但我的清单文件中有2个条目用于我的活动。删除其中一个条目后,当屏幕旋转而不是 onCreate 时, onConfigurationChanged 被触发。