使用AsyncTask进行片段切换

时间:2012-04-08 17:52:43

标签: android android-asynctask android-fragments

我的应用程序使用片段以纵向模式显示ListView,或者以横向模式并排显示ListView和“详细信息”视图。我还在ActionBar中有一个菜单项,用于启动AsyncTask。问题是,如果用户在AsyncTask运行时将其显示从纵向旋转到横向(反之亦然),则AsyncTask将被终止。为了防止AsyncTask停止,我将configChanges属性添加到AndroidManifest:

    <activity android:name="ListingFragment" android:configChanges="keyboardHidden|orientation" />

但是,添加该属性会阻止片段自动切换到横向/纵向视图。有没有办法让片段自动切换视图而不杀死AsyncTask?

1 个答案:

答案 0 :(得分:1)

您需要在活动被杀死之前保存您的asynctask实例。您可以使用onRetainCustomNonConfigurationInstance()进行保存。然后在您的oncreate中,您可以使用getLastCustomNonConfigurationInstance()检索它。然后在你的onCreate中,你可以再次将你的活动“附加”到asynctask。