如何在设备启动时显示通知

时间:2012-10-03 14:19:09

标签: android service android-notifications

我正在开发android中的通知应用程序,显示我使用日期选择器设置的特定日期和时间的通知。如果我的应用程序在后台运行,它会正确显示。但是,当我强制停止我的应用程序或设备关闭并重新启动时,通知不会显示。即使应用程序强制关闭或设备重新启动,如何显示通知。

2 个答案:

答案 0 :(得分:1)

你做不到。通知附加到应用程序的上下文。如果应用程序被杀死/销毁,您的通知也会随之消失。

您可能要做的是在应用程序或服务启动后重新创建这些通知。为此,请确保捕获android.intent.action.BOOT_COMPLETED广播,以便自动实现此功能。

答案 1 :(得分:1)

您应该考虑使用AlarmManager而不是服务。 使用自定义意图在所需日期/时间设置警报。在BroadcastReceiver中,您可以创建并显示通知。

如果重启设备,您可能还需要监听BOOT_COMPLETED意图并重置警报。

编辑:

一个例子:

long time = // time in milliseconds of when you want your Alarm

PendingIntent mIntent = PendingIntent.getBroadcast(context,
                0, new Intent("YOUR_CUSTOM_INTENT"), PendingIntent.FLAG_UPDATE_CURRENT);

AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);        
am.set(AlarmManager.RTC_WAKEUP,
                        time, mIntent );

然后在BroadcastReceiver中捕获YOUR_CUSTOM_INTENT意图,显示通知并设置以下警报。