Android推送通知离线[关闭]

Posted

技术标签:

【中文标题】Android推送通知离线[关闭]【英文标题】:Android push notification offline [closed] 【发布时间】:2016-02-01 11:48:42 【问题描述】:

我正在尝试在我的应用中实现推送通知,已经使用 GCM。但情况是我也想要离线工作的方式。 即:对于 android 应用程序内的多个条件,它应该触发推送通知。

目前正在尝试:

NotificationManager mNotificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification);
contentView.setImageViewResource(R.id.image, R.drawable.ic_launcher);
contentView.setTextViewText(R.id.title, title);
contentView.setTextViewText(R.id.text, msg);
notification.contentView = contentView;

Intent notificationIntent = new Intent(this, HomeActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this,randomNo, notificationIntent, 0);

但问题是, 1.当应用程序没有运行时,通知到达但屏幕闪烁(因为我使用意图调用它)。 2.我想对多个条件使用同一个类并将其转发到不同的活动(目前我不能将意图更改为基于 condtiop 的另一个活动)。

【问题讨论】:

请解释否决投票 可能是因为不清楚你在问什么。 很简单。我想在 android 中离线推送通知 虽然我没有投反对票,但坦率地说,即使我不理解“离线推送通知” 离线是什么意思 关于离线有多种理解 我没有使用 应用在bg 我的设备屏幕被锁定,应用在前台或后台 我的互联网处于离线状态跨度> 【参考方案1】:

1) 发送通知的正确方法是mNotificationManager.notify(...),如下所示:

private void sendNotification(String message, String title, int id) 
    Intent intent = new Intent(this, HomeActivity.class);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, 
    intent, PendingIntent.FLAG_ONE_SHOT);

    Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
            .setSmallIcon(R.drawable.ic_stat_icon)
            .setContentTitle(title)
            .setContentText(message)
            .setAutoCancel(true)
            .setSound(defaultSoundUri)
            .setContentIntent(pendingIntent);

    NotificationManager notificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

    notificationManager.notify(id /* ID of notification */, 
            notificationBuilder.build());

2) 您可以将HomeActivity.class 替换为类构造函数中给出的变量或作为参数的某个方法:Class<?> cls,然后使用Intent notificationIntent = new Intent(this, cls);

【讨论】:

感谢您的回复。我可以知道如何将类从另一个活动传递给这个方法 目前我可以发送like,private void sendNotification(String message, String title, int id,Context context) 只需使用sendNotification(String message, String title, int id, Class<?> cls, Context context) 然后将HomeActivity.class替换为cls 出现错误-> 无法解析构造函数'Intent(com.id.myacitivity.java.lang.Class)

以上是关于Android推送通知离线[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

当用户在Android中使用XMPP离线时向用户发送通知

关闭 Android 推送通知

Quickblox - 如何将通知推送到 Android 和 iOS 平台?

Android和iPhone的推送通知[关闭]

Android GCM:通知关闭后重复推送

Android 推送通知关闭:它是如何在内部工作的?