Android 在处理程序内部创建警报对话框

Android 在处理程序内部创建警报对话框,android,multithreading,Android,Multithreading,我想从处理程序中创建一个警报对话框,当线程终止时,该对话框会收到信号。这是我的代码,导致: android.view.WindowManager$BadTokenException:无法添加窗口-- 令牌null不适用于应用程序 不能使用应用程序上下文创建对话框。使用活动上下文 相反 此外,这种创建对话框的方式必然会在以后产生问题,特别是当活动出于任何原因重新启动时。您应该使用对话框片段或托管对话框(Activity的showDialog()方法)我确信您正在Android内部执行WebServ

我想从处理程序中创建一个警报对话框,当线程终止时,该对话框会收到信号。这是我的代码,导致:

android.view.WindowManager$BadTokenException:无法添加窗口-- 令牌null不适用于应用程序


不能使用应用程序上下文创建对话框。使用活动上下文 相反


此外,这种创建对话框的方式必然会在以后产生问题,特别是当活动出于任何原因重新启动时。您应该使用对话框片段或托管对话框(Activity的
showDialog()
方法)

我确信您正在Android内部执行WebService请求/响应,然后我建议您在Android中实现它,因为您不必担心线程管理


仅供参考,在
doInBackground()
-编写web调用逻辑,在
onPostExecute()
-显示要显示的警报对话框内。

问题可能是getApplicationContext()不在活动上下文中

    alertDialog = new AlertDialog.Builder(getApplicationContext()).create();
    //should be change to
    alertDialog = new AlertDialog.Builder( YourActivity.this ).create();

请注意,答案并不是那么简单。Android的活动生命周期导致AsyncTask出现问题-有关更多详细信息,请参阅。
    alertDialog = new AlertDialog.Builder(getApplicationContext()).create();
    //should be change to
    alertDialog = new AlertDialog.Builder( YourActivity.this ).create();