无法停止在屏幕旋转时重新启动活动

时间:2015-03-10 00:22:22

标签: android android-activity

在我的活动中,我有一个很长的过程,它使用AsyncTask在后台运行。正在运行任务时显示ProgressDialog。这工作正常,但如果用户在任务运行时旋转屏幕,则会发生错误。我希望我的活动在用户旋转屏幕时不会重新启动。

我已将以下内容添加到我的清单文件中,但每次旋转屏幕时仍会调用OnCreate方法。 (已通过在OnCreate中添加了一个破点来确认)

android:configChanges="keyboardHidden|orientation|screenSize"

<activity android:name=".MyActivityName" android:configChanges="keyboardHidden|orientation|screenSize">       

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

活动在屏幕旋转中经历生命周期,因此它将通过onPause()。 enter image description here

有两种方法可以解决这个问题。

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 被触发。