-1

私は項目を持つリストを持っています。各項目内に通知を設定して通知から開くことができます。それはうまく動作しますが、私は1つの通知を設定することができます、それは同じ項目か別のものかどうかは関係ありません。私が複数を設定すると、最後のものだけが表示されます。私は他に何ができるのか分からない。ここでアイテム詳細クラス内の自分のコードAndroidでAlarmManagerを使用して複数の通知を設定する方法

ある

Long alertTime = new GregorianCalendar().getTimeInMillis() + 7 * 1000; 

     Intent alertIntent = new Intent(getApplicationContext(), AlertReceiver.class); 
     alertIntent.putExtra(DataBaseManager.CN_ID_APLICACION, idAplicacion); 

     AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
     alarmManager.set(AlarmManager.RTC_WAKEUP, alertTime, PendingIntent.getBroadcast(getApplicationContext(), 1, alertIntent, 
       PendingIntent.FLAG_UPDATE_CURRENT)); 

レシーバ:

private final static AtomicInteger c = new AtomicInteger(0); 

    public static int getID() { 
     return c.incrementAndGet(); 
    } 
} 

マニフェスト

public class AlertReceiver extends BroadcastReceiver { 
int idAplicacion; 


@Override 
public void onReceive(Context context, Intent intent) { 

    idAplicacion = intent.getIntExtra(DataBaseManager.CN_ID_APLICACION, idAplicacion); 

    Log.e("TESTING", "the id is " + String.valueOf(idAplicacion)); 
    createNotification(context, "some title", "some message text", "some sticker"); 
} 

public void createNotification(Context context, String title, String msgText, String sticker) 
{ 

    Intent i = new Intent(context, DetalleAplicacionActivity.class); 
    i.putExtra(DataBaseManager.CN_ID_APLICACION, idAplicacion); 


    PendingIntent notificIntent = PendingIntent.getActivity(context,0, i ,PendingIntent.FLAG_CANCEL_CURRENT); 


    NotificationCompat.Builder mBuilder = new 
      NotificationCompat.Builder(context) 
      .setContentTitle(title) 
      .setContentText(msgText) 
      .setTicker(sticker) 
      .setSmallIcon(R.drawable.ic_launcher) 
      .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher)); 


    mBuilder.setContentIntent(notificIntent); 
    mBuilder.setDefaults(NotificationCompat.DEFAULT_VIBRATE); 
    mBuilder.setAutoCancel(true); 

    NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
    mNotificationManager.notify(NotificationID.getID(), mBuilder.build()); 

    } 
} 

とパブリッククラス通知ID {

 <uses-permissionandroid:name="com.android.alarm.permission.SET_ALARM"/> 

    <receiver android:name=".Clases.AlertReceiver"/> 
+0

を作成しながら、あなたはここを参照してください、アラームごとに異なる 'requestCode'を使用する必要があるいくつかのさまざまなを使用します。http://stackoverflow.com/questions/12785702/android-set-multiple-アラーム –

+0

ありがとう!あなたは正しいです:) – MaxFraire

答えて

1

あなたが同じrequestCodeの通知を作成する理由は、すべて同じ通知としてAndroidによって処理されるため、更新するだけです。

通知

public void createNotification(Context context, String title, String msgText, String sticker) { 
    ... 
    PendingIntent notificIntent = PendingIntent.getActivity(context, 
      java.util.Random.nextInt(100000), i ,PendingIntent.FLAG_CANCEL_CURRENT); 
    ... 
} 
+0

ありがとうございました!私はその部分を逃した。それは今働いている – MaxFraire

関連する問題