2013-12-08 20 views
1

鑑於在我的應用程序中,我需要許多通知,我有這樣的課程。來自其他課程的呼叫通知

public class MyNotificationClass{ 

    NotificationManager mNotificationManager; 
    NotificationCompat.Builder notificationBuilder; 
    Context context; 

    static final int NOTIFICA1 = 1; 
    static final int NOTIFICA2 = 2; 

    public MyNotificationClass(Context context) { 
     // TODO Auto-generated constructor stub 
     mNotificationManager = (NotificationManager) context.getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE); 
     notificationBuilder = new NotificationCompat.Builder(context); 
    } 

    public void mostra(int Id) { 

     switch(Id) 
     { 
     case NOTIFICA1: 
      notificationBuilder.setContentTitle("Text01"); 
      notificationBuilder.setContentText("Text01"); 
      mNotificationManager.notify(NOTIFICA1, notificationBuilder.build()); 
      break; 
     case NOTIFICA2: 
      notificationBuilder.setContentTitle("Text02"); 
      notificationBuilder.setContentText("Text02"); 
      mNotificationManager.notify(NOTIFICA2, notificationBuilder.build()); 
      break; 
     } 
     notificationBuilder.setWhen(System.currentTimeMillis()); 
     notificationBuilder.setSmallIcon(R.drawable.ic_launcher); 
     notificationBuilder.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_LIGHTS); 
    } 

} 

如果我想打電話,例如,通知號碼1.我該怎麼辦?

回答

1

您必須在NotificationBuilder上致電setWhen(), setSmallIcon(), setDefaults(),然後才能通知您build()。將該代碼移動到開關塊前面。

重要電話是setSmallIcon()。如果您未設置圖標,則通知將不會顯示。

試試這樣說:

public void mostra(int Id) { 

    notificationBuilder.setWhen(System.currentTimeMillis()); 
    notificationBuilder.setSmallIcon(R.drawable.ic_launcher); 
    notificationBuilder.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_LIGHTS); 

    switch(Id) 
    { 
    case NOTIFICA1: 
     notificationBuilder.setContentTitle("Text01"); 
     notificationBuilder.setContentText("Text01"); 
     mNotificationManager.notify(id, notificationBuilder.build()); 
     break; 
    case NOTIFICA2: 
     notificationBuilder.setContentTitle("Text02"); 
     notificationBuilder.setContentText("Text02"); 
     mNotificationManager.notify(id, notificationBuilder.build()); 
     break; 
    } 
} 

編輯:

調用此方法像這樣在你的活動:

MyNotificationClass myNoti = new MyNotificationClass(this); 
myNoti.mostra(MyNotificationClass.NOTIFICA1); 
+0

好感謝,但調用notifica1我該怎麼辦? –

+0

@MarioG。我編輯了我的答案。這是你想要的? –

+0

是的,非常感謝 –