Android 1.6: “android.view.WindowManager$BadTokenException: Unable to add window — token null is not for an application”

后端 未结 16 1170
滥情空心
滥情空心 2020-11-22 07:46

I\'m trying to open a dialog window, but every time I try to open it it throws this exception:

Uncaught handler: thread main exiting due to uncaught exceptio         


        
16条回答
  •  死守一世寂寞
    2020-11-22 08:17

    I had a similar issue where I had another class something like this:

    public class Something {
      MyActivity myActivity;
    
      public Something(MyActivity myActivity) {
        this.myActivity=myActivity;
      }
    
      public void someMethod() {
       .
       .
       AlertDialog.Builder builder = new AlertDialog.Builder(myActivity);
       .
       AlertDialog alert = builder.create();
       alert.show();
      }
    }
    

    Worked fine most of the time, but sometimes it crashed with the same error. Then I realise that in MyActivity I had...

    public class MyActivity extends Activity {
      public static Something something;
    
      public void someMethod() {
        if (something==null) {
          something=new Something(this);
        }
      }
    }
    

    Because I was holding the object as static, a second run of the code was still holding the original version of the object, and thus was still referring to the original Activity, which no long existed.

    Silly stupid mistake, especially as I really didn't need to be holding the object as static in the first place...

提交回复
热议问题