말그대로 액티비티에서 메소드안에서 알람을 사용해 브로드캐스트 리시버로 일정시간이 지난후에 호출되도록 하였습니다.
근데 그과정에서 다이얼로그를 호출하려고 하면 에러가 발생하는데
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();
}
}