【问题标题】:Open app from notification “App is running in the background”从通知“应用程序正在后台运行”打开应用程序
【发布时间】:2026-01-04 19:40:01
【问题描述】:

点击“应用正在后台运行”的通知后,我需要打开我的应用,但是当我点击它时打开应用信息,我该如何避免这种情况并打开应用本身。

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

    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);

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

【问题讨论】:

    标签: java android notifications background-service


    【解决方案1】:

    试试这个。

    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);
        }
    }
    
    

    【讨论】:

      最近更新 更多