Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何一次性获得Arraylist中每个项目的通知-Android Java_Java_Android_Android Notifications - Fatal编程技术网

如何一次性获得Arraylist中每个项目的通知-Android Java

如何一次性获得Arraylist中每个项目的通知-Android Java,java,android,android-notifications,Java,Android,Android Notifications,我正在开发一个提醒应用程序,每当过期日期超过2天或30天后,通过推送通知提醒用户药物的过期日期。 在onHandleWork方法中:我执行查询并将结果保存在Arraylist中,然后为Arraylist中的每个项目调用通知 问题是:通知仅为列表中的第一项生成 我错过了什么 通知意图服务2: 包com.example.android.homepharcine.notifications; 导入android.app.pendingent; 导入android.content.Context; 导

我正在开发一个提醒应用程序,每当过期日期超过2天或30天后,通过推送通知提醒用户药物的过期日期。 在onHandleWork方法中:我执行查询并将结果保存在Arraylist中,然后为Arraylist中的每个项目调用通知

问题是:通知仅为列表中的第一项生成

我错过了什么

通知意图服务2: 包com.example.android.homepharcine.notifications; 导入android.app.pendingent; 导入android.content.Context; 导入android.content.Intent; 导入android.database.Cursor; 导入android.support.v4.app.JobIntentService; 导入android.support.v4.app.NotificationCompat; 导入android.support.v4.app.NotificationManagerCompat; 导入android.support.v4.content.WakefulBroadcastReceiver; 导入com.example.android.homepharmacy.Activity.DrugActivity; 导入com.example.android.homepharmacy.DataModel.DrugAlert2; 导入com.example.android.homepharmacy.Database.DataContract; 导入com.example.android.homepharmacy.R; 导入com.example.android.homepharmacy.broadcast_receivers.NotificationEventReceiver2; 导入java.text.DateFormat; 导入java.text.ParsePosition; 导入java.text.simpleDataFormat; 导入java.util.ArrayList; 导入java.util.Calendar; 导入java.util.Date; 公共类NotificationIntentService 2扩展了JobIntentService{ 私有静态最终整数通知_ID=2; 私有静态最终字符串操作\u开始=操作\u开始2; 私有静态最终字符串ACTION_DELETE=ACTION_DELETE2; 私有静态字符串标记=NotificationIntentService2.class.getName; ArrayList ArrayList 2=新的ArrayList; DrugAlert2 DrugAlert2; DateFormat DateFormat=新的SimpleDateFormatdd/MM/yyyy; ArrayList DrugsList=新的ArrayList; 字符串drugEpiryName; 呼气酸盐; int-drugEpityId; 弦托达; 今天的日期; 字符串exNotDrugName; 字符串exNotDrugDate; int-exNotDrugId; 公共静态无效startService2Context上下文{ enqueueWorkcontext,NotificationIntentService2.class,1002,新意图; } @凌驾 受保护的无效onHandleWorkIntent意图{ 日期=新日期; toda=dateFormat.formatdate; 今天=dateFormat.parsetoda,新的ParsePosition0; arrayList2=setTimeAlarm2; ifarrayList2!=null{ ifarrayList2.size>0{ forDrugAlert2 d2:arrayList2{ exNotDrugName=d2.getdruge\u name; exNotDrugDate=d2.GetDruge\u ex\u日期; exNotDrugId=d2.getIdEx; 试一试{ 流程启动通知2; String action=intent.getAction; if ACTION\u START.equalsaction{ 流程启动通知2; } }最后{ WakefulBroadcastReceiver.CompleteWakefulIntentent; } } } } } 公共静态意图createIntentStartNotificationService2Context上下文{ 意图=新的意图上下文,NotificationIntentService2.class; intent.setActionACTION\u启动; 返回意图; } 公共静态意图CreateIntentDeleteNotification2上下文上下文{ 意图=新的意图上下文,NotificationIntentService2.class; intent.setActionACTION\u删除; 返回意图; } 私有void processDeleteNotification2内容意图{ //记录什么? } 私有无效处理开始通知2{ //做一些事情。例如,从后端获取新数据以创建富通知? 最终NotificationCompat.Builder=新NotificationCompat.Builder此; builder.setContentTitleDrug即将到期!! .setAutoCanceltrue .setColorgetResources.getColorR.color.colorAccent .setContentTextThe+exNotDrugName+将在:+exNotDrugDate内到期 .setSmallIconR.drawable.logo; Intent main Intent=新意图此,DrugActivity.class; mainIntent.putExtraIntent.EXTRA_文本,exNotDrugId; PendingEvent PendingEvent=PendingEvent.getActivitythis, 通知编号:, 主旨,, pendingent.FLAG_UPDATE_CURRENT; builder.setcontentintentpendingent; builder.setDeleteIntentNotificationVentReceive2.getDeleteIntentthis; NotificationManagerCompat manager=NotificationManagerCompat.fromthis; manager.notify\u ID,builder.build; } 公共阵列列表setTimeAlarm2{ Calendar cal=Calendar.getInstance;//创建日历 cal.setTimetoday;//设置日历时间/日期 cal.addCalendar.DATE,+30; 日期 Before30Days=cal.getTime; 字符串beforeMonthe=dateFormat.FormatDateBefore30天; ///// Calendar ca2=Calendar.getInstance;//创建日历 ca2.setTimetoday;//设置日历时间/日期 ca2.addCalendar.DATE,+2; Date dateBefore2Days=ca2.getTime; String before2Days=dateFormat.formatdateBefore2Days; 游标c=getContentResolver.queryDataContract.DrugsEntry.CONTENT\u URI,药物列, 到期日在?,?, 新字符串[]{before2Days,beforeMonthe},null; 国际金融公司!=空的{ int d=c.getCount; ifc.moveToFirst{ 而c是最后一个{ drugEpiryName=c.getStringc.getColumnIndexcommercial\u name; drugEpityId=c.getIntc.getColumnIndex\u id; drugExpiryDate=c.getStringc.getColumnIndexexpiry\u日期; drugAlert2=新的DrugAlert2drugEpityId、drugEpiryName、DrugeExpiryDate; drugsExList.adddrugAlert2; c、 移动文本; } } } 返回药单; } 私有静态最终字符串[]DRUG\u列={ 数据合同。药物岗哨。\u ID, DataContract.DrugsEntry.COLUMN\u druge\u COMMERCIAL\u NAME, DataContract.DrugsEntry.COLUMN_druge_COMMERCIAL_NAME_阿拉伯语, DataContract.DrugsEntry.COLUMN\药物\学名, DataContract.DrugsEntry.COLUMN_druge_SCIENTIFIC_NAME_阿拉伯语, DataContract.DrugsEntry.COLUMN_Druge_指示, DataContract.DrugsEntry.COLUMN_Druge_INDICATION_阿拉伯语, DataContract.DrugsEntry.COLUMN\u到期日期, DataContract.DrugsEntry.COLUMN\u药物浓度, DataContract.DrugsEntry.COLUMN\u Druge\u类型, DataContract.DrugsEntry.COLUMN_Druge_TYPE_阿拉伯语, DataContract.DrugsEntry.COLUMN\u DrugsEntry\u警告, DataContract.DrugsEntry.COLUMN_Druge_WARNINGS_阿拉伯语, DataContract.DrugsEntry.COLUMN_副作用, DataContract.DrugsEntry.COLUMN_SIDE_EFFECTS_阿拉伯语, DataContract.DrugsEntry.COLUMN\u PREGNENT\u允许, DataContract.DrugsEntry.COLUMN\u Druge\u说明, DataContract.DrugsEntry.COLUMN_druge_DESCRIPTION_阿拉伯语, DataContract.DrugsEntry.COLUMN\u Druge\u条形码 };
} 每次更改通知ID值