Java android.view.WindowManager$BadTokenException:无法添加窗口,您的活动正在运行吗?

Java android.view.WindowManager$BadTokenException:无法添加窗口,您的活动正在运行吗?,java,android,spinner,popupwindow,Java,Android,Spinner,Popupwindow,我的活动有一个弹出窗口,我的弹出窗口工作正常,直到我点击微调器,它给了我一个错误,如logcat所说: 11-01 15:28:31.131: E/AndroidRuntime(10846): android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRootImpl$W@41f56ec8 is not valid; is your activity runni

我的活动有一个弹出窗口,我的弹出窗口工作正常,直到我点击微调器,它给了我一个错误,如logcat所说:

    11-01 15:28:31.131: E/AndroidRuntime(10846): android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRootImpl$W@41f56ec8 is not valid; is your activity running?
11-01 15:28:31.131: E/AndroidRuntime(10846):    at android.view.ViewRootImpl.setView(ViewRootImpl.java:692)
11-01 15:28:31.131: E/AndroidRuntime(10846):    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:345)
11-01 15:28:31.131: E/AndroidRuntime(10846):    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:224)
11-01 15:28:31.131: E/AndroidRuntime(10846):    at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:149)
11-01 15:28:31.131: E/AndroidRuntime(10846):    at android.view.Window$LocalWindowManager.addView(Window.java:556)
11-01 15:28:31.131: E/AndroidRuntime(10846):    at android.widget.PopupWindow.invokePopup(PopupWindow.java:1013)
11-01 15:28:31.131: E/AndroidRuntime(10846):    at android.widget.PopupWindow.showAsDropDown(PopupWindow.java:922)
11-01 15:28:31.131: E/AndroidRuntime(10846):    at android.widget.ListPopupWindow.show(ListPopupWindow.java:595)
11-01 15:28:31.131: E/AndroidRuntime(10846):    at android.widget.Spinner$DropdownPopup.show(Spinner.java:983)
11-01 15:28:31.131: E/AndroidRuntime(10846):    at android.widget.Spinner.performClick(Spinner.java:608)
11-01 15:28:31.131: E/AndroidRuntime(10846):    at android.view.View$PerformClick.run(View.java:17337)
11-01 15:28:31.131: E/AndroidRuntime(10846):    at android.os.Handler.handleCallback(Handler.java:615)
11-01 15:28:31.131: E/AndroidRuntime(10846):    at android.os.Handler.dispatchMessage(Handler.java:92)
11-01 15:28:31.131: E/AndroidRuntime(10846):    at android.os.Looper.loop(Looper.java:137)
11-01 15:28:31.131: E/AndroidRuntime(10846):    at android.app.ActivityThread.main(ActivityThread.java:4895)
11-01 15:28:31.131: E/AndroidRuntime(10846):    at java.lang.reflect.Method.invokeNative(Native Method)
11-01 15:28:31.131: E/AndroidRuntime(10846):    at java.lang.reflect.Method.invoke(Method.java:511)
11-01 15:28:31.131: E/AndroidRuntime(10846):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
11-01 15:28:31.131: E/AndroidRuntime(10846):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
11-01 15:28:31.131: E/AndroidRuntime(10846):    at dalvik.system.NativeStart.main(Native Method)
这是我的代码:

   imgSearch.setOnClickListener(new OnClickListener(){
                public void onClick(View v) {

    //              Intent cari= new Intent(MerchantSimasCard.this,Pencarian.class);
    //              startActivity(cari);
                    LayoutInflater inflater = (LayoutInflater) getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
                    final View popupSet = inflater.inflate(R.layout.cari, null);
                    spin_all=(Spinner)popupSet.findViewById(R.id.spin_kategori);
                    spin_kota=(Spinner)popupSet.findViewById(R.id.spin_kota);
                    spin_abjad=(Spinner)popupSet.findViewById(R.id.spin_abjad);

                    search=(EditText)popupSet.findViewById(R.id.search);
                    buttonsearch=(Button)popupSet.findViewById(R.id.buttonsearch);

                    final PopupWindow pw = new PopupWindow(popupSet, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, true);

                    new SpinnerKategori().execute();
                    buttonsearch.setOnClickListener(new OnClickListener() {

                        @Override
                        public void onClick(View v) {

                            if (ListMerchant.size()>0) {
                                ListMerchant.clear();
                                ListChildMerchantChild.clear();
                            }
            String url1 = null;
            try {
                url1 = "http://www3.abc.co.id/";
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
              pw.dismiss();
                    System.out.println(url1);
                    new TerbaruAsyncTask(url1).execute();
                        }

                    });
                    pw.showAtLocation(findViewById(R.id.merchantsimascard), Gravity.CENTER, 0, 0); 
                }

                });
public class SpinnerKategori extends AsyncTask<Void, Void, String>{
        String url ="http://www3.sinarmasmsiglife.co.id/E-Policy/ios/sc_merchant.htm?s=1";

        public SpinnerKategori(){
            this.url=url;
        }

        @Override
        protected void onPreExecute(){
            super.onPreExecute();
            dialog=ProgressDialog.show(MerchantSimasCard.this,"", "melakukan pengambilan data");
        }

        @Override
        protected String doInBackground(Void... params) {
            String result="";
            try {
                result=Connection.get(url);
            }catch (Exception e){
                result="";
            }
            return result;
        }

        @Override
        protected void onPostExecute(String result){
            super.onPostExecute(result);

            ParsingCategory(result.replace("\n", "").trim());
             ArrayAdapter<String> spinnerMenu = new ArrayAdapter<String>(MerchantSimasCard.this,R.layout.spinner_style, kategori);
             spinnerMenu.setDropDownViewResource(R.layout.spinner_dropdown);
                spin_all.setAdapter(spinnerMenu);

                ArrayAdapter<String> SpinnerKota = new ArrayAdapter<String>(MerchantSimasCard.this, R.layout.spinner_style, kota);
                SpinnerKota.setDropDownViewResource(R.layout.spinner_dropdown);
                spin_kota.setAdapter(SpinnerKota);  


                ArrayAdapter<String>  Spinnerabjad= new ArrayAdapter<String>(MerchantSimasCard.this,R.layout.spinner_style, abjad);
                Spinnerabjad.setDropDownViewResource(R.layout.spinner_dropdown);
                spin_abjad.setAdapter(Spinnerabjad);  
            dialog.dismiss();

        }
    }

    private void ParsingCategory(String result) {
        if (!result.equals("")) {
            try {
                JSONObject jsonObject = new JSONObject(result);

                JSONArray cat = jsonObject.getJSONArray("cat");

                for (int i=0; i<cat.length();i++){

                    JSONObject status = cat.getJSONObject(i);
                    String Category=status.getString("name");

                        kategori.add(Category);

                }
                JSONArray city=jsonObject.getJSONArray("cit");
                for (int j=0; j<city.length();j++){

                    String kot =  (String) city.get(j);
                        kota.add(kot);

                }
            }

            catch (Exception e) {
                Log.d("TEST CHART", e.getMessage());
            }
        }

}
imgSearch.setOnClickListener(新的OnClickListener(){
公共void onClick(视图v){
//意向cari=新意向(MerchantSimasCard.this,Pencarian.class);
//星触觉(cari);
LayoutFlater充气器=(LayoutFlater)getBaseContext().getSystemService(布局充气器服务);
最终视图POPUPPRED=充气机充气(R.layout.cari,空);
spin_all=(微调器)popumper.findViewById(R.id.spin_kategori);
spin_kota=(微调器)popump.findViewById(R.id.spin_kota);
spin_abjad=(微调器)popumper.findviewbyd(R.id.spin_abjad);
search=(EditText)popump.findViewById(R.id.search);
buttonsearch=(Button)popUnder.findViewById(R.id.buttonsearch);
final PopupWindow pw=新的PopupWindow(popumper,LayoutParams.WRAP_内容,LayoutParams.WRAP_内容,true);
新喷丝头kategori().execute();
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
如果(ListMerchant.size()>0){
ListMerchant.clear();
ListChildMerchantChild.clear();
}
字符串url1=null;
试一试{
url1=”http://www3.abc.co.id/";
}捕获(不支持的编码异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
解雇;
System.out.println(url1);
新建TerbaruAsyncTask(url1.execute();
}
});
pw.显示位置(findViewById(R.id.merchantsimascard),重心,0,0);
}
});
公共类SpinnerKategori任务{
字符串url=”http://www3.sinarmasmsiglife.co.id/E-Policy/ios/sc_merchant.htm?s=1";
公共喷丝器kategori(){
this.url=url;
}
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
dialog=ProgressDialog.show(MerchantSimasCard.this,“,”melakukan pengambillan data”);
}
@凌驾
受保护字符串doInBackground(无效…参数){
字符串结果=”;
试一试{
结果=Connection.get(url);
}捕获(例外e){
结果=”;
}
返回结果;
}
@凌驾
受保护的void onPostExecute(字符串结果){
super.onPostExecute(结果);
ParsingCategory(result.replace(“\n”和“).trim());
ArrayAdapter spinnerMenu=新的ArrayAdapter(MerchantSimasCard.this,R.layout.spinner_style,kategori);
spinnerMenu.setDropDownViewResource(R.layout.spinner\u下拉菜单);
spin_all.setAdapter(喷丝头菜单);
ArrayAdapter spinner kota=新的ArrayAdapter(MerchantSimasCard.this,R.layout.spinner_style,kota);
SpinnerKota.setDropDownViewResource(R.layout.spinner_下拉菜单);
spin_kota.setAdapter(喷丝器kota);
ArrayAdapter Spinnerabjad=新的ArrayAdapter(MerchantSimasCard.this,R.layout.spinner_style,abjad);
Spinnerabjad.setDropDownViewResource(R.layout.spinner\u下拉菜单);
spin_abjad.setAdapter(Spinnerabjad);
dialog.dismise();
}
}
私有void ParsingCategory(字符串结果){
如果(!result.equals(“”){
试一试{
JSONObject JSONObject=新JSONObject(结果);
JSONArray cat=jsonObject.getJSONArray(“cat”);

对于(int i=0;i您正在尝试在显示之前关闭
PopupWindow

删除此行

pw.dismiss();
在“onCreate”上保存上下文,用mContext替换MerchantSimasCard.this或使用UI线程