Как обновить уведомление службы переднего плана новыми входящими сообщениями - PullRequest
0 голосов
/ 02 августа 2020

Я пытаюсь создать простое приложение для сообщений, чтобы обновить входящее сообщение, я использовал службу переднего плана. Мое приложение работает нормально, когда приложение работает или существует в фоновом режиме, но когда приложение закрыто, уведомление переднего плана не обновляется с последним сообщением, оно показывает только предыдущее, когда приложение было запущено.

Как я могу обновить уведомление переднего плана новыми входящими сообщениями ?? Кто-то предложил мне использовать для этой цели jobScheduler !! Я искал это, но не нашел ничего, связанного с моим проектом .. Я новичок в android, кто-нибудь, пожалуйста, помогите мне в этом ...

Вот фрагмент кода, который я сделал

    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {


        Uri ringtone= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALL);
        String input=intent.getStringExtra("EXTRA");
        Intent notification_intent=new Intent(this,MainActivity.class);
        PendingIntent pendingIntent= PendingIntent.getActivity(this,0,notification_intent,0);
        Notification builder = new NotificationCompat.Builder(this)
                .setContentTitle("New Notifications")
                .setContentText(input)
                .setSmallIcon(R.drawable.ic_message_black_24dp)
                .setContentIntent(pendingIntent)
                .setLights(Color.BLUE,500,500)
                .setShowWhen(true)
                .setSound(ringtone)
                .setAutoCancel(true)
                .build();




        startForeground(3,builder);



       return START_STICKY;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
}

Этот метод вызывает startForegroundService ()

    private void notification(String mas) {
        String input=mas;
        Intent serviceintent=new Intent(this,ExampleService.class);
        serviceintent.putExtra("EXTRA",input);
       ContextCompat.startForegroundService(this,serviceintent);

    }

в Menifest. xml Я добавил это: <uses-permission android:name="android.permission.RECEIVE_SMS"/>

<receiver android:name=".ReceiveSms">
            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_RECEIVED"/>

            </intent-filter>
            
        </receiver>
        <service android:name=".ExampleService"/>
...