【发布时间】:2017-05-10 08:33:25
【问题描述】:
我创建了三个类,即 Mainactivity,它将上下文传递给服务器类,扩展至Asynctask。有一个名为setting的类,调用server类来更新server中的数据。
传递上下文的Mainactivity代码:
Server.setActivityContext(getApplicationContext());
服务器类代码:
public class Server extends AsyncTask<Void, Void, Void> {
static Context mycontext;
public static void setActivityContext(Context receivingcontext) {
mycontext = receivingcontext;
}
Dialog dialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
dialog = ProgressDialog.show(mycontext, "Updating ..", "Please wait......");
}
@Override
protected Void doInBackground(Void... params) {
//Background task
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
dialog.dismiss();
}
}
调用此服务器类时,progressdialog 出现错误。虽然传递了上下文,但您可以建议的任何修复。
错误:
FATAL EXCEPTION: main
Process: jss.smartapp, PID: 22915 android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
【问题讨论】:
-
发布您的 logcat 错误
-
在方法 setActivityContext (MainActivity.this) 中将 this 作为上下文传递
-
Server.setActivityContext(MainActivity.this);//传递你的活动上下文你必须传递活动上下文而不是应用程序上下文..
标签: java android android-asynctask progressdialog