应用程序在AsyncTask中显示进度条时崩溃方向更改

ama*_*pid 1 crash android screen-orientation android-asynctask

我有一个应用程序,它使用AsyncTask从服务器获取json文件,因此显示进度条.但在显示进度条和方向更改时,应用程序崩溃显示VIEW NOT ATTACHED错误或HAS LEAKED WINDOW错误.

如何摆脱这些错误?否则,应用程序在AsyncTask上运行正常.

reV*_*rse 7

那么在AsyncTask运行的同时"锁定"屏幕方向呢?!

例如:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
Run Code Online (Sandbox Code Playgroud)

就在你从服务器获取JSON文件之前

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
Run Code Online (Sandbox Code Playgroud)

在执行AsynTask之后.


Stu*_*dus 5

我最好的猜测来自现有的有限信息:

当您旋转屏幕时,它会根据需要经历onPause(),onStop()和onDestroy()的正常活动生命周期过程,因此您必须在其中一个方法中关闭progressDialog

我是怎么做到的:

@Override
protected void onPause()
{
    super.onPause();
    if (mProgressDialog != null)
        mProgressDialog.dismiss();
}
Run Code Online (Sandbox Code Playgroud)


Gre*_*nsy 5

尝试在您的活动中这样做。虽然不是很干净。它可以帮助

<activity android:configChanges="orientation|screenSize" android:name=".activity.MyActivity" ></activity>
Run Code Online (Sandbox Code Playgroud)