Android - 活动在轮换期间继续运行

时间:2011-12-05 14:29:24

标签: android android-asynctask screen-rotation

在我的活动中,我有一个名为A的内部类扩展AsyncTask。我不希望活动在设备旋转时再次破坏并重新创建。我希望它继续运行。我已阅读此链接RotationAsync 他们使用静态类的AsyncTask。我在我的活动中声明了很多变量,所以如果我使用静态类,我就不能使用活动变量。是否有其他方法可以像上面的链接那样使用AsyncTask的静态类?谢谢你的回答。对不起,如果我的英语有一些错误。

2 个答案:

答案 0 :(得分:1)

您可以使用此清单上的设置阻止您的活动重新启动:

<activity android:name=".MyActivity"
      android:configChanges="orientation|keyboardHidden"
      android:label="@string/app_name">

执行此操作后,您可以使用此代码管理更改

@Override public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);

// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
    //do something here
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
    //do something here
}

}

有关详细信息,请参阅http://developer.android.com/guide/topics/resources/runtime-changes.html

答案 1 :(得分:0)

要保留变量,可以将它们保存到Bundle中,并在重新创建时重新加载Activity的状态。这应该让你开始:http://developer.android.com/guide/topics/fundamentals/activities.html#SavingActivityState