我一直在尝试开发这些功能几天,并且不断收到错误和错误。我正在制作一个应用程序,可以在需要祷告的时候通知用户。我有一个以json格式从服务器下载的数据库中的所有祈祷时间。由于我多次检查,数据都是正确的。
我创建了一个使用AlarmManager设置闹钟的服务。 然后我将MainActivity绑定到服务。在主要活动中,我使用名为 setAlarmAccordingToDB()的服务中的方法设置警报。 问题是当我绑定我的服务时。应用关闭时,服务会被破坏。即将发出通知。
然后我尝试启动该服务并将其绑定到我的activity.Called setAlarmAccordingToDB()。发生了什么事是重复调用setAlarmAccordingToDB。它不停地设置新的警报。
有关如何设置即将发出的通知的任何建议?
答案 0 :(得分:1)
您可能需要使用Wakeful服务,因此在调用警报时设备/进程会被唤醒。
我在我的应用程序中使用了这段代码一段时间(不是项目,只是从Mark的示例中修改了我的代码),效果很好。
答案 1 :(得分:0)
我试图为broadcastReceiver使用一个单独的类,它似乎工作。我刚刚使用了Alarm Manager和BroadcastReceiver。修改后的代码后,即使手机屏幕关闭且应用关闭,我的应用也可以触发通知。
在此之前我使用: -
broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
displayNotification();
}
};
现在,我创建了一个类: -
public class Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
NotificationManager notificationManager;
notificationManager = (NotificationManager)context.getSystemService(context.NOTIFICATION_SERVICE);
displayNotification(context);
}
}
在AndroidManifest.xml中我添加了
<receiver android:name=".Receiver" android:process=":remote"></receiver>