从通知“App is 运行 in the background”打开应用

Open app from notification “App is running in the background”

我需要在点击通知“App is 运行 in the background”后打开我的应用程序,但是当我点击它打开应用程序信息时,如何避免这种情况并打开应用程序本身.

这是我用来显示此通知的代码:

    Intent notificationIntent = new Intent(this, MainActivity.class);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
    NotificationChannel channel = new NotificationChannel("Player", "Sync Service", NotificationManager.IMPORTANCE_HIGH);
    channel.setDescription("Service Name");
    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.createNotificationChannel(channel);

    Notification.Builder builder = new Notification.Builder(this, "Player")                
          .setContentTitle("Music Player")
          .setContentText("My Music")
          .setAutoCancel(true)
          .setContentIntent(pendingIntent)
          .setOngoing(true);

    Notification notification = builder.build();
    startForeground(1, notification);

观察。此应用确实使用了后台服务,我不想隐藏此通知。

试试这个。

package developer.eyosiyas.NileSat.Habesha.service;

import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;

import androidx.annotation.Nullable;
import androidx.core.app.NotificationCompat;

import developer.eyosiyas.NileSat.Habesha.R;
import developer.eyosiyas.NileSat.Habesha.View.MainActivity;

public class ServiceExample extends Service {

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

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        return START_STICKY;
    }

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


        Intent notificationIntent = new Intent(this, MainActivity.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
        NotificationManager notificationManager;
        notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        NotificationChannel channel = new NotificationChannel("Player", "Sync Service", NotificationManager.IMPORTANCE_HIGH);
        channel.enableLights(true);
        channel.enableVibration(true);
        channel.setLightColor(R.color.colorPrimary);
        channel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
        channel.setDescription("Service Name");
        notificationManager.createNotificationChannel(channel);

        NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "Player")
                .setContentTitle("Music Player")
                .setContentText("My Music")
                .setAutoCancel(false)
                .setContentIntent(pendingIntent)
                .setOngoing(true);

        Notification notification = builder.build();
        notificationManager.notify(1, notification);
        startForeground(1, notification);
    }
}