我使用setinexactrepeating将alarm manager设置为每天三次有三个通知。
既然我在这里找不到答案,我就来问。我正在从广播接收器内的firebase数据库中获取用户的存储图像和用户名,广播接收器位于alarm manager中使用的pendingintent内,带有字符串附加项,如用户id等。现在的问题是,当应用程序被关闭时,intent extra是否会存储在alarm manager中使用的pendingent中,而当应用程序被关闭时,广播接收器是否仍能访问数据库。如果不是,我该怎么解决?
下面是我在receiver中获取用户id的代码:
String selection = intent.getStringExtra("selection");
String selected_user = intent.getStringExtra("selected_id");
String unique_id = intent.getStringExtra("unique_id");
String current_user_id = intent.getStringExtra("current_id");
mMyGroupRef = FirebaseDatabase.getInstance().getReference().child("My Group").child(current_user_id).child(selection);
mOtherUserMyGroupRef = FirebaseDatabase.getInstance().getReference().child("My Group").child(selected_user);
mMyGroupRef.addListenerForSingleValueEvent(new ValueEventListener() { //etc...
报警管理器(我已将mscheduletask设置为静态变量,在oncreate中初始化为mscheduletask=(alarmmanager)objects.requirennoull(getcontext()).getsystemservice(context.alarm_service);)电话:
calendar1 = Calendar.getInstance();
calendar1.setTimeInMillis(System.currentTimeMillis());
calendar1.set(Calendar.HOUR_OF_DAY, 8);
calendar2 = Calendar.getInstance();
calendar2.setTimeInMillis(System.currentTimeMillis());
calendar2.set(Calendar.HOUR_OF_DAY, 14);
calendar3 = Calendar.getInstance();
calendar3.setTimeInMillis(System.currentTimeMillis());
calendar3.set(Calendar.HOUR_OF_DAY, 18);
Intent intent = new Intent(getContext(), AutoMessageReceiver.class);
intent.putExtra("unique_id", "" + uniqueID);
intent.putExtra("selection", selection);
intent.putExtra("selected_id", user_id);
intent.putExtra("current_id", currentID);
PendingIntent pendingIntent1 = PendingIntent.getBroadcast(getContext(), uniqueID, intent, PendingIntent.FLAG_UPDATE_CURRENT);
PendingIntent pendingIntent2 = PendingIntent.getBroadcast(getContext(), uniqueID - 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);
PendingIntent pendingIntent3 = PendingIntent.getBroadcast(getContext(), uniqueID - 2, intent, PendingIntent.FLAG_UPDATE_CURRENT);
mScheduleTask.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar1.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent1);
mScheduleTask.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar2.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent2);
mScheduleTask.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar3.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent3);
然后我检查数据库中是否存在这种情况,我称之为shownotification方法,它采用用户名和毕加索图书馆中使用的图像链接。
当我启动应用程序并选择我希望一天关闭三次通知的用户时,一切正常。我确实收到了,但有时发生的是
暂无答案!
目前还没有任何答案,快来回答吧!