Google チャットがバックグラウンドで動作しているときにメッセージを受信すると、ステータス バーに通知が表示されません。
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);
}
}