3
我正在我的应用程序的一部分运行AsyncTask
的一部分,因此我想正确处理配置更改。应用程序配置更改崩溃
使用this link(与网站上的代码有点不同)中的代码,我可以让AsyncTask
在API下的手机屏幕上旋转运行(我正在使用向后兼容库作为片段) 。
但是我然后测试该设备上我每次旋转设备时,我得到下面的错误(通过logcat的记录):
08-21 07:33:31.634: W/Surface(488): java.lang.Throwable
08-21 07:33:31.634: W/Surface(488): at android.view.Surface.<init>(Surface.java:337)
08-21 07:33:31.634: W/Surface(488): at com.android.server.wm.ScreenRotationAnimation.<init>(ScreenRotationAnimation.java:258)
08-21 07:33:31.634: W/Surface(488): at com.android.server.wm.WindowManagerService.startFreezingDisplayLocked(WindowManagerService.java:12303)
08-21 07:33:31.634: W/Surface(488): at com.android.server.wm.WindowManagerService.updateRotationUncheckedLocked(WindowManagerService.java:7697)
08-21 07:33:31.634: W/Surface(488): at com.android.server.wm.WindowManagerService.updateRotationUnchecked(WindowManagerService.java:7602)
08-21 07:33:31.634: W/Surface(488): at com.android.server.wm.WindowManagerService.updateRotation(WindowManagerService.java:7565)
08-21 07:33:31.634: W/Surface(488): at com.android.internal.policy.impl.PhoneWindowManager.updateRotation(PhoneWindowManager.java:6793)
08-21 07:33:31.634: W/Surface(488): at com.android.internal.policy.impl.PhoneWindowManager$MyOrientationListener.onProposedRotationChanged(PhoneWindowManager.java:760)
08-21 07:33:31.634: W/Surface(488): at android.view.WindowOrientationListener$ScreenOrientationEventListenerImpl.onSensorChanged(WindowOrientationListener.java:534)
08-21 07:33:31.634: W/Surface(488): at android.hardware.SystemSensorManager$ListenerDelegate$1.handleMessage(SystemSensorManager.java:256)
08-21 07:33:31.634: W/Surface(488): at android.os.Handler.dispatchMessage(Handler.java:99)
08-21 07:33:31.634: W/Surface(488): at android.os.Looper.loop(Looper.java:175)
08-21 07:33:31.634: W/Surface(488): at com.android.server.ServerThread.run(SystemServer.java:1774)
编辑
这种情况发生时进度对话框框可见并且AsyncTask在配置更改时正在运行。
作为解决方法,我使用了IntentService。
但是,我仍然想知道是什么原因导致它失败?
这可能还没有排序,因为我将改变我使用此代码运行对话框的方式 – TimCS
请不要将[解决]放在标题中。相反,请将答案作为答案发布,并将其标记为已接受的答案。 –