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);
}
}
的是使用两个notify.setlatestEventInfo语句 – user1640247
notif.setLatestEventInfo(getApplicationContext(),FROMNAME,身体的PendingIntent)的需要;这将用于从外部获得通知,在某种意义上讲,某种身体信息表示它将显示你的通知 – shassss