从我的MainActivty我尝试使用以下行调用非活动类的方法:
Context context;
context = getApplicationContext();
mClient.start(context);
非活动课程:
public void start(Context context) {
final ProgressDialog startDialog;
startDialog = new ProgressDialog(context);
startDialog.setMessage("Loading...");
startDialog.setCancelable(false);
startDialog.show();
mHandler.post(new Runnable () {
@Override
public void run() {
Log.d(TAG,"Connecting to the server...");
try {
connect();
} catch (Exception e) {
}
startDialog.dismiss();
}
该应用程序崩溃并显示以下消息:
android.view.WindowManager $ BadTokenException:无法添加窗口 - 令牌null不适用于应用程序
哪里出错?
答案 0 :(得分:1)
在ProgressDialog
中传递上下文参数,因此更改
startDialog = new ProgressDialog(this);
到
startDialog = new ProgressDialog(context);
并在您的mainActivity更改
context = getApplicationContext();
到
context = MainActivty.this;
答案 1 :(得分:1)
尝试在非活动类.start(....)
方法
startDialog = new ProgressDialog(context);
而不是
startDialog = new ProgressDialog(this);
您还需要更改mainActivity
context = getApplicationContext();
到
context = MainActivity.this;;
您需要传递上下文以在非活动类
中创建Progress Dialog
答案 2 :(得分:0)
startDialog = new ProgressDialog(context);