title: another WindowManager$badtokenexception
body: <p>I have reviewed every post about this problem with AlertDialog to no avail.  Can anyone see something amiss here?  I tried DialogFragment, but am doing this from a PhoneStateListener and can't extend anything else.  I do not have a null token, so getBaseContext is working. I believe.</p>
  
  <pre><code>    private void lookupCallerId(int cstate)
  {
      if(prefs.getIsDeactivated())
          return;     
  
      if(lookupInProgress)
      {
          return;
      }
  
      //add popup box here for lookup question?
  
      PMLog.v(LOGTAG, "lookupCallerId() Start pop up box.");                  
      Context context = service.getBaseContext();                 
      if(cstate == TelephonyManager.CALL_STATE_RINGING) {
  
       AlertDialog.Builder builder = new AlertDialog.Builder(context);
       PMLog.v(LOGTAG, "lookupCallerId() ALERT BUILDER.");
  
       builder.setTitle("Lookup this #?");
       builder.setCancelable(true);
       builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
  
           public void onClick(DialogInterface dialog, int which) {
               String strPhoneNumber = PhoneNumberProcessor.formattedPhoneNumber(prefs.getLastCallerNumber(), service); {
                   if(strPhoneNumber.length() == 0)                    
                          return;
               }
  
               PMLog.v(LOGTAG, "lookupCallerId() Starting CNM lookup thread");
               Thread thread = new Thread(null, doBackgroundThreadProcessing, "LookupBackgroundThread");
               thread.start();
               }
           }
       );
       builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog, int which) {
              onNo();
               return;
           }
       });
       builder.setOnCancelListener(new DialogInterface.OnCancelListener() {
           public void onCancel(DialogInterface dialog) {
               onNo();
               return;
           }
       });        
          builder.create().show();        
      }       
  }
  </code></pre>