2012-09-10 14 views
0

当Google Chat在后台时收到消息时,状态栏中没有收到任何通知。当应用程序在后台运行时,未在状态栏中收到通知

public void showNotification(Context context, String msg, String title, 
     String fromChatID) { 


    int id = GTalkChatDetails.friendID.indexOf(fromChatID); 

    NotificationManager = (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE); 

    int icon = R.drawable.statusicon; 
    CharSequence tickerText = msg; 
    long when = System.currentTimeMillis(); 
    Notification notification = new Notification(icon, tickerText, when); 
    notification.flags |= Notification.FLAG_AUTO_CANCEL; 
    notification.flags |= Notification.DEFAULT_SOUND; 


    CharSequence contentTitle = title; 
    CharSequence contentText = msg; 


    Intent notificationIntent = new Intent(context, GTChat.class); 
    Bundle bun = new Bundle(); 
    bun.putString("name", GTalkChatDetails.name); 
    bun.putString("chatID", GTalkChatDetails.chatID); 
    bun.putString("profileImage", GTalkChatDetails.profileImageURL); 
    bun.putString("fromName", title); 
    bun.putString("fromChatID", fromChatID); 


    notificationIntent.putExtras(bun); 



    PendingIntent contentIntent = PendingIntent.getActivity(context, id, 
      notificationIntent,PendingIntent.FLAG_ONE_SHOT); 

      notification.setLatestEventInfo(context, contentTitle, contentText,contentIntent); 

    mNotificationManager.notify(id, notification); 

    getCurrentActivity(context, msg, title, fromChatID); 

} 



public void getCurrentActivity(Context context, String msg, 
     String fromName, String fromChatID) { 


    ActivityManager am = (ActivityManager) context 
      .getSystemService(ACTIVITY_SERVICE); 

    List<RunningTaskInfo> taskInfo = am.getRunningTasks(1); 
    ComponentName componentInfo = taskInfo.get(0).topActivity; 


    if (componentInfo.getClassName().startsWith("com.project")) { 

     showNotification(context, msg, fromName, fromChatID); 
    } else { 
     showNotification(context, msg, fromName, fromChatID); 
    } 

} 

回答

1
if (to.equals(fromName)&&notify_checkbox==true) { 
    Notification(message.getBody(),fromName, name); 
     } 
else 
System.out.println("recieved msg"); 



    protected void Notification(String body, String fromName, String Notificationmsg) { 

    NotificationManager notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);  

    String tickerText = getString(R.string.app_name, body); 
    Notification notif = new Notification(R.drawable.ic_launcher, tickerText, 
      System.currentTimeMillis()); 

    Intent notificationIntent = new Intent(this, PresentChatActivity.class); 
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 


    notif.setLatestEventInfo(PresentChatActivity.this,Notificationmsg, message, pendingIntent); 
    notif.setLatestEventInfo(getApplicationContext(), fromName, body,pendingIntent); 
    notificationManager.notify(10001, notif); 
    } 
+0

的是使用两个notify.setlatestEventInfo语句 – user1640247

+0

notif.setLatestEventInfo(getApplicationContext(),FROMNAME,身体的PendingIntent)的需要;这将用于从外部获得通知,在某种意义上讲,某种身体信息表示它将显示你的通知 – shassss

相关问题