Многообразные Извещения только покажи последнюю, он не становится отвечающим современным требованиям

Что я должен делать для того, чтобы, когда мое приложение пошлет секунду (третья. четверть... и т.д.) извещение не было заменено, и включились все?

MainActivity.java:

public class MainActivity extends ActionBarActivity {

    DatePicker datePicker;
    TimePicker timePicker;
    Button btnStart;
    Uri uriAlarm;
    final static int RQS_1 = 1;
    EditText textonombre;
    EditText textodescripcion;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.notif_main);

        datePicker = (DatePicker)findViewById(R.id.datepicker);
        timePicker = (TimePicker)findViewById(R.id.timepicker);
        btnStart = (Button)findViewById(R.id.start);
        uriAlarm = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
        textonombre = (EditText)findViewById(R.id.textonombre);
        textodescripcion = (EditText)findViewById(R.id.textodescripcion);



        btnStart.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                    setAlarm(uriAlarm);
                    Toast.makeText(MainActivity.this, "Alarma ACTIVADA", Toast.LENGTH_SHORT).show();
                }
        });
    }

    private void setAlarm(Uri passuri){

        Calendar cal = Calendar.getInstance();
        cal.set(datePicker.getYear(),
                datePicker.getMonth(),
                datePicker.getDayOfMonth(),
                timePicker.getCurrentHour(),
                timePicker.getCurrentMinute(),
                00);
        Intent intent = new Intent(getBaseContext(), pruebaintento.dos.notif.AlarmReceiver.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(
                getBaseContext(),
                RQS_1,
                intent,
                PendingIntent.FLAG_CANCEL_CURRENT);

        AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
        alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);

    }
}

AlarmReceiver.java

public class AlarmReceiver extends BroadcastReceiver {

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

        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

        Intent repeating_intent = new Intent(context,MainActivity.class);
        repeating_intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);


        PendingIntent pendingIntent = PendingIntent.getActivity(context,id,repeating_intent, PendingIntent.FLAG_UPDATE_CURRENT);


        NotificationCompat.Builder builder = (NotificationCompat.Builder) new NotificationCompat.Builder(context)
                .setContentIntent(pendingIntent)
                .setSmallIcon(R.drawable.ic_launcher)
                .setContentTitle("NOMBRE")
                .setContentText("DESCRIPCIÓN")
                .setAutoCancel(true);
        notificationManager.notify(id,builder.build());

    }
}

Я издаю: @Elenasys

public class AlarmReceiver extends BroadcastReceiver {

    int id= 1;

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



        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

        Intent repeating_intent = new Intent(context,MainActivity.class);
        repeating_intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);


        PendingIntent pendingIntent = PendingIntent.getActivity(context,id++,repeating_intent, PendingIntent.FLAG_UPDATE_CURRENT);


        NotificationCompat.Builder builder = (NotificationCompat.Builder) new NotificationCompat.Builder(context)
                .setContentIntent(pendingIntent)
                .setSmallIcon(R.drawable.ic_launcher)
                .setContentTitle("NOMBRE")
                .setContentText("DESCRIPCIÓN")
                .setAutoCancel(true);
        notificationManager.notify(id++,builder.build());

    }
}
3
задан 03.04.2019, 20:50
0 ответов

Проблема находится здесь:

notificationManager.notify(id, builder.build());

Ты должен уверять, что id отличается, произведя новое извещение.

Даже это важно id отличался, так как, если извещение содержит различные эти данные, они могут не становиться отвечающими современным требованиям, хотя ты пошлешь их правильно в последующих извещениях.

5
ответ дан 03.12.2019, 17:50
  • 1
    Спасибо @Elenasys и как deberí чтобы делать это правильным способом? Сохраняя извещения в он был датирован? –  08.01.2017, 17:19
  • 2
    То, что я использую в каждом notificació n - id каждого notificació n, у которого есть один, пойдите автоувеличительный, но твой podrí схвати в có я говорю, что производить один будьте увеличены в один в каждом notificació n. –  08.01.2017, 17:22
  • 3
    и có mo я могу способствовать тому, чтобы авто-увеличилась идентификация? –  08.01.2017, 17:25
  • 4
    В có я говорю, что ты можешь делать (пойдите ++, builder.build ()); или посылать id notificació n, чтобы посылать, что estarí в определенная как первичный ключ autoincrementable –  08.01.2017, 17:33
  • 5
    первые ты opció n añ adiendole int пойдите = 001; но останься, не функционируя –  08.01.2017, 17:37

Теги

Похожие вопросы