Уведомление службы Foreground не отправляет значения ArrayList - PullRequest
0 голосов
/ 28 февраля 2019

Основная проблема заключается в том, что я создал службу 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);



    }
...