Основная проблема заключается в том, что я создал службу Foreground Service в этой службе. Я использовал ScheduledExecutorService для получения данных с сервера через redis. Ключевой момент - когда пользователь выходит из приложения, я хочу, чтобы данные сохранялись в ArrayList, но когда он нажимал науведомление от службы переднего плана. Я хочу передать данные во фрагмент, поэтому, когда я пытаюсь это сделать, я получаю каждый раз, когда пустой ArrayList работает только тогда, когда я до создания уведомления в методе onCreate в Service добавляю вручную значение вArrayList, возможно, это происходит потому, что когда метод onCreate выполняется, он создает уведомление и передает текущий статус ArrayList через намерение и не добавляет значения ArrayList позже.
Надеюсь, я объяснил достаточно хорошо, чтобы вы моглиПонимаю .Есть идеи как решить это?
Вот мой код для службы переднего плана: я использовал сериализованный пакет, чтобы передать ArrayList и фрагмент во время получения данных, но как отправить обновленный ArrayList, когда пользователь нажимает на уведомление, скажем, через 1 мин.
Спасибо заранее!
if (Build.VERSION.SDK_INT >= 26)
{
//CONTEXT == THIS
bundle= new Bundle();
String s1=""+testArray.size();
bundle.putSerializable("lat",latService);
bundle.putSerializable("lng",lngService);
Intent intent = new Intent(this, TrackingActivityDrawer.class);
intent.putExtras(bundle);
intent.putExtra("testT","testT");
intent.putExtra("size",s1);
//Broadcast Receiver
// Intent broad= new Intent ("name");
// broad.putExtra("name","name");
// sendBroadcast(broad);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP| Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_UPDATE_CURRENT);
//github code
String CHANNEL_ID = "my_channel_01";
NotificationChannel channel = new NotificationChannel(CHANNEL_ID,
"Channel human readable title",
NotificationManager.IMPORTANCE_DEFAULT);
//.setContentIntent(pendingIntent);
((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)).createNotificationChannel(channel);
Notification notification = new NotificationCompat.Builder(this, CHANNEL_ID)
.setSmallIcon(R.drawable.beni)
.setTicker("RANDOM")
.setContentTitle("aasgasgag")
.setContentIntent(pendingIntent)
.setContentText("dfgdfgfagfdgfgdfgdfgdfg").build();
startForeground(1, notification);
}else
{
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher_background)
.setContentTitle(getString(R.string.app_name))
.setContentText("text")
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
.setAutoCancel(true);
Notification notification = builder.build();
startForeground(1, notification);
}