0

アプリに通知を追加し、指定されたデータをデータベースに保存しています。データベースに保存されているデータを更新したいのですが、以前のデータの通知を削除して、更新されたデータの通知を作成したいと考えています。リクエスト コードが増加するアラーム マネージャの配列リストを使用しています。古い通知を削除して新しい通知を作成するのを手伝ってくれる人はいますか? コードを見る必要がある場合は、投稿します。

for(int i=0;i

                        if(j==0){
                                  longobjDate=objDate.getTime();
                            longobjTime=objTime1.getTime();
                            long longDay=longobjDate+longobjTime+19800000;
                            Intent intent=new Intent(New_Med.this,Alarm_Reciever.class);
                            PendingIntent pendingIntent=PendingIntent.getBroadcast(New_Med.this, k, intent, 0);
                            AlarmManager alarmManager=(AlarmManager) getSystemService(ALARM_SERVICE);

                            alarmManagers.add(alarmManager);
                            alarmManagers.get(k).set(AlarmManager.RTC_WAKEUP, longDay, pendingIntent);

                            Toast.makeText(New_Med.this, "Alarm set", Toast.LENGTH_SHORT).show();
                            k=k+1;
                            db1.insertNotificationDetails(med_id, longobjDate, longobjTime);
                        }
                        if(j==1){
                            longobjDate=objDate.getTime();
                            longobjTime=objTime2.getTime();
                            long longDay=longobjDate+longobjTime+19800000;
                            Intent intent=new Intent(New_Med.this,Alarm_Reciever.class);
                            PendingIntent pendingIntent=PendingIntent.getBroadcast(New_Med.this, k, intent, 0);
                            AlarmManager alarmManager=(AlarmManager) getSystemService(ALARM_SERVICE);

                            alarmManagers.add(alarmManager);
                            alarmManagers.get(k).set(AlarmManager.RTC_WAKEUP, longDay, pendingIntent);



                            Toast.makeText(New_Med.this, "Alarm set", Toast.LENGTH_SHORT).show();
                            k=k+1;
                            db1.insertNotificationDetails(med_id, longobjDate, longobjTime);

                        }
                        if(j==2){
                            longobjDate=objDate.getTime();
                            longobjTime=objTime3.getTime();
                            long longDay=longobjDate+longobjTime+19800000;
                            Intent intent=new Intent(New_Med.this,Alarm_Reciever.class);
                            PendingIntent pendingIntent=PendingIntent.getBroadcast(New_Med.this, k, intent, 0);
                            AlarmManager alarmManager=(AlarmManager) getSystemService(ALARM_SERVICE);

                            alarmManagers.add(alarmManager);
                            alarmManagers.get(k).set(AlarmManager.RTC_WAKEUP, longDay, pendingIntent);


                            Toast.makeText(New_Med.this, "Alarm set", Toast.LENGTH_SHORT).show();
                            k=k+1;
                            db1.insertNotificationDetails(med_id, longobjDate, longobjTime);

                        }
                        if(j==3){
                            longobjDate=objDate.getTime();
                            longobjTime=objTime4.getTime();
                            long longDay=longobjDate+longobjTime+19800000;
                            Intent intent=new Intent(New_Med.this,Alarm_Reciever.class);
                            PendingIntent pendingIntent=PendingIntent.getBroadcast(New_Med.this, k, intent, 0);
                            AlarmManager alarmManager=(AlarmManager) getSystemService(ALARM_SERVICE);

                            alarmManagers.add(alarmManager);
                            alarmManagers.get(k).set(AlarmManager.RTC_WAKEUP, longDay, pendingIntent);


                            Toast.makeText(New_Med.this, "Alarm set", Toast.LENGTH_SHORT).show();
                            k=k+1;
                            db1.insertNotificationDetails(med_id, longobjDate, longobjTime);

                        }

                    }
                    long t=objDate.getTime();
                    t=t+(24*60*60*1000);
                    objDate= new Date(t);
                }

こんな感じでアラームマネージャーを保存しています。私はアンドロイドがまったく初めてです。だから、コード化された例の方法で私を助けてください...

4

2 に答える 2

1

おい、これを使え

notificationManager.cancel(NOTIFICATION_ID);  

ここで NOTIFICATION_ID は int であり、アクティビティで一意に識別できるように定義する必要があります

于 2012-02-17T07:14:26.283 に答える
0

特定の通知のリクエスト コードを見つけ、AlarmManager クラス オブジェクトを使用して保留中のインテントをキャンセルします。例えば:

    AlarmManager alarmManager4 = (AlarmManager)getSystemService(ALARM_SERVICE);
    Intent I = new Intent(getApplicationContext(),AlarmReceiver.class);
    PendingIntent P = PendingIntent.getBroadcast(getApplicationContext(), <request_code>, I, 0);
    alarmManager4.cancel(P);
    P.cancel();

アラーム マネージャを使用してキャンセルすると、アラーム マネージャから開始されるため、その通知もキャンセルできます。

于 2012-02-17T06:47:39.977 に答える