말그대로 액티비티에서 메소드안에서 알람을 사용해 브로드캐스트 리시버로 일정시간이 지난후에 호출되도록 하였습니다.

근데 그과정에서 다이얼로그를 호출하려고 하면 에러가 발생하는데

07-05 01:11:40.728: ERROR/AndroidRuntime(669): Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application

왜 이러는 지 알수가 없습니다. 일반 토스트로 확인했을 떄는 잘됬는데 지금은 왜 안되는지 이유를 아시는분 알려주세요~


public void runAlarm(boolean flag){
  Intent intent = new Intent(mContext, ScmEPGOneShotAlarm.class);
        PendingIntent sender = PendingIntent.getBroadcast(mContext,
                0, intent, PendingIntent.FLAG_ONE_SHOT);

         Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.add(Calendar.SECOND, 10);

        AlarmManager am = (AlarmManager)mContext.getSystemService(Context.ALARM_SERVICE);
        am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);
        try {
   sender.send();
  } catch (CanceledException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
public class ScmEPGOneShotAlarm extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
     AlertDialog.Builder dial = new AlertDialog.Builder(context);
     
     ScmEPGProgramData tempdata = new ScmEPGProgramData();
     tempdata =intent.getParcelableExtra("data11");
     boolean flag = intent.getBooleanExtra("flag", true);
          
     dial.setTitle("Alarm");
     dial.setMessage("The Program");
     dial.create().show();

    }
}