我收到错误消息“android.view.WindowManager $ BadTokenException:无法添加窗口 - 令牌null不适用于应用程序。
是的,我知道这个错误遍及stackoverflow并且它基于没有获取活动的上下文...但是,我正在拉动该上下文并仍然收到错误。
来自MainActivity:
new MemberStream(this).execute();
来自MemberStream: >
public HomeActivity activity;
ProgressDialog dialog;
public MemberStream(HomeActivity a) {
this.activity = a;
dialog = new ProgressDialog(a.getApplicationContext());
}
@Override
protected void onPreExecute() {
this.dialog.setMessage("Loading");
this.dialog.show();
}
@Override
protected Boolean doInBackground(String... params) {
updateMembers(url, 0);
return true;
}
当我运行应用程序时,我在
上得到了前面的错误dialog = new ProgressDialog(a.getApplicationContext());
有什么想法吗?
答案 0 :(得分:3)
public Activity activity;
ProgressDialog dialog;
public MemberStream(Activity a) {
this.activity = a;
dialog = new ProgressDialog(a);
}
您已有上下文对象(您的活动)
答案 1 :(得分:1)
dialog = new ProgressDialog(a);
您已经将一个活动上下文传递给asynctask构造函数。
知道何时使用活动上下文以及何时使用应用程序上下文检查下面的链接并通过commonsware回答
答案 2 :(得分:0)
您可以使用此
public Context context ;
ProgressDialog dialog;
public MemberStream(Context c) {
context = c;
dialog = new ProgressDialog(c);
}