2013-03-05 201 views
0

在Android中,我实现了Google Cloud Notification,该通知在任何消息到达时通知,但即使消息存在,通知栏中也会显示图标,安装应用程序后立即显示图标,有没有只有当消息到达时才显示通知并在用户点击它时隐藏它?只有当消息到达时才显示Android通知

这里是我的代码:

private static void generateNotification(Context context, String message) { 
    int icon = R.drawable.ic_launcher; 
    long when = System.currentTimeMillis(); 
    NotificationManager notificationManager = (NotificationManager) 
      context.getSystemService(Context.NOTIFICATION_SERVICE); 
    Notification notification = new Notification(icon, message, when); 

    String title = context.getString(R.string.app_name); 

    //Intent notificationIntent = new Intent(context, MainActivity.class);   //Open Activity 
    // set intent so it does not start a new activity 

    Intent notificationIntent = new Intent(Intent.ACTION_VIEW); 

    notificationIntent.setData(Uri.parse("http://www.google.com"));     //Open Link 

    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; 

    // Play default notification sound 
    notification.defaults |= Notification.DEFAULT_SOUND; 

    //notification.sound = Uri.parse("android.resource://" + context.getPackageName() + "your_sound_file_name.mp3"); 

    // Vibrate if vibrate is enabled 
    notification.defaults |= Notification.DEFAULT_VIBRATE; 
    notificationManager.notify(0, notification);  

} 
+0

是的,但没有你的任何代码,很难说你在哪里有问题。 – 2013-03-05 14:59:38

+0

对不起,Tanis.7x - 刚更新了我的代码 – user1223035 2013-03-05 15:02:41

回答

1

没有看到你在哪里接收消息和要产生和取消的通知,这是非常难以辨别,你需要做的,实现这个东西,但我会给它一个镜头。

如果您加载Android Connected App Engine project的示例项目(通过GCM),您会注意到在GCMBaseIntentService中收到了GCM数据。 这个类有一个可以覆盖的方法,称为onMessage(),只要您收到GCM消息,该方法就会被调用。如果您使用此方法创建通知,则您的应用程序只会在收到GCM消息时生成通知。

至于取消通知 - 您可以通过调用NotificationManager的cancel()方法,传递要取消的通知的ID来完成。假设您有某种活动向用户显示消息,并且这将是一个取消任何与特定消息有关的未完成通知的好地方。

+0

这非常有帮助。感谢Tanis.7x会尝试相同的 – user1223035 2013-03-05 15:34:36

相关问题