【发布时间】:2013-11-23 13:51:20
【问题描述】:
我需要从活动中获取服务上下文,因为我正在服务中创建警报,并且我想在活动中将其删除,因此必须使用相同的上下文我可以将此服务的上下文保存在 @ 987654321@ 作为一个字符串,但是我怎样才能将这个字符串转换为一个上下文呢?
我的报警代码是:
Intent intentAlarm = new Intent(getApplicationContext(), TimeAlarm.class);
//add the notification body to the intent:
intentAlarm.putExtra("Notif_body", Notif_Body);
// create the object
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
//set the alarm for particular time
alarmManager.set(AlarmManager.RTC_WAKEUP,new GregorianCalendar().getTimeInMillis()+60*1000, PendingIntent.getBroadcast(getApplicationContext(),1,intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT));
我如何删除它?
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent i = new Intent(getApplicationContext(),TimeAlarm.class);
PendingIntent displayIntent = PendingIntent.getBroadcast(getApplicationContext(),1,i, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.cancel(displayIntent);
为什么这不起作用?
【问题讨论】:
-
您不必使用相同的上下文。只需使用 Activity 上下文,一切都会正常工作。
-
或者,在这两种情况下都使用应用程序上下文。
-
ok 将在这两种情况下都使用应用程序上下文,因为我认为需要相同的上下文,因为当我使用另一个上下文时我无法删除警报,会尝试一下,谢谢。
-
我想你在找
getApplicationContext() -
很抱歉您的 cmets 非常有用但无法标记它们..
标签: android android-activity service android-context