应用程序在后台运行时,不在状态栏中获取通知

时间:2012-09-10 12:23:13

标签: android notifications

当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);
    }

}

1 个答案:

答案 0 :(得分: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);
     }