在后台单击通知无法打开我的应用程序?

问题描述 投票:-1回答:1

我是android开发的新手。

我创建了一个用于接收pushNotification的后台服务(使用我们自己的套接字服务,而不是FCM)。现在我的设备收到消息并成功显示通知。但是,当我单击通知时,它不会返回我的应用程序。

当我单击通知时,在下面显示错误:ActivityManager:无法启动服务意图{cmp = com.my.app / package.name.AppActivity} U = 0:找不到

这是我的代码:


    public static void setNotification(Service service, String message) {

        NotificationManager manager = (NotificationManager) service.getSystemService(NOTIFICATION_SERVICE);

        String appName = service.getString(R.string.app_name);
        Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        NotificationCompat.Builder builder = new NotificationCompat.Builder(service)
                .setContentTitle(appName)
                .setContentText(message) 
                .setContentIntent(getDefaultIntent(service)) 
                .setWhen(System.currentTimeMillis()) 
                .setOngoing(false)
                .setAutoCancel(true)
                .setDefaults(Notification.DEFAULT_VIBRATE) 
                .setSmallIcon(R.drawable.icon) 
                .setLargeIcon(BitmapFactory.decodeResource(service.getResources(), R.drawable.icon)) 
                .setSound(alarmSound); 
        Notification notification = builder.build(); 
        notification.flags |= Notification.FLAG_AUTO_CANCEL;

        manager.notify(1, notification);
    }

    private static PendingIntent getDefaultIntent(Service service) {
        Intent intent = new Intent(service, AppActivity.class);
        PendingIntent pendingIntent = PendingIntent.getService(service, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
        return pendingIntent;
    }
}

AndroidManifest.xml中的MainActivity设置

<activity android:name="package.name.AppActivity" android:configChanges="orientation|screenSize" android:label="@string/app_name" android:launchMode="singleTask" android:screenOrientation="landscape" android:theme= "@android:style/Theme.NoTitleBar.Fullscreen" android:enabled="true" android:exported="true">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>

    </activity>

请指导我这段代码中我缺少或做错的事情。非常感谢。

android android-activity push-notification
1个回答
0
投票

[更新您的代码,如下所示,它对我有用-可能是您在PendingIntent中传递的ID,而notify是不同的,这就是为什么(在endingIntent中传递1,在notify方法中传递0)

NotificationManager notificationManager = (NotificationManager) context
        .getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(icon, message, when);

Intent notificationIntent = new Intent(context, AppActivity.class);

notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
        | Intent.FLAG_ACTIVITY_SINGLE_TOP);

PendingIntent intent = PendingIntent.getActivity(context, 0,
        notificationIntent, 0);

notification.setLatestEventInfo(context, title, message, intent);
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notificationManager.notify(0, notification);
© www.soinside.com 2019 - 2024. All rights reserved.