2013-08-08 2 views
2

받은 편지함 스타일 알림을 사용하고 알림 상태 표시 줄에 알림이 표시되면 gmail과 같은 기존 알림에 추가해야합니다.받은 편지함 스타일 알림 업데이트 gmail처럼

하지만 그 통지가 상태 표시 줄에 표시됩니다 감지하는 방법을 모른다, 알림 ID

을 얻을 수있는 방법이 이미 표시되어 내 응용 프로그램에 의해 생성 된 그 통지를 알 수있는 방법이 THER가 있습니다 그냥 더 한 (받은 편지함 스타일)로 업데이트

내가 생각하는 것 : -

은 내가 공유 prefrences에 알림 ID를 저장하고 내가 의도 서비스를 시작합니다 보류중인 의도를 전달합니다 생각하는 알림이 공유 된 prefrences에 저장되어 있고 알림 게시 중에 내가 삭제할 것입니다. prefrences에서 알림 ID를 확인하십시오. 선택을 취소하지 않으면 업데이트 할 것입니다.

더 좋은 아이디어가 있습니까? 당신이 그것을 업데이트하기 위해 알림 ID를 알고 있어야합니다, 당신이 말한 것처럼 http://developer.android.com/training/notify-user/managing.html

그것을 :

답변

1

환경 설정에 저장하지 마십시오. 알림 ID는 상수 값을 사용하십시오.

ID는 응용 프로그램마다 고유하므로 원하는 번호를 사용할 수 있습니다. 그런 다음 NotifiactionManager에 알릴 때 사용하십시오. 동일한 코드를 사용하여 알림을 업데이트하십시오. 그래서이

NotificationManager.notify(MY_NOTIFICATION_ID , notification); 
1

나는이 링크에 모든 것을 가지고한다고 생각합니다. 공유 환경 설정을 사용하면 모든 것을 할 수있는 코드가 몇 줄 밖에 없으므로 쉽게 할 수 있습니다.

사용자 의견이 좋으면 사용자가 알림을 클릭 할 때 환경 설정 파일을 지우십시오.

+0

프로그래밍 방식으로 알림 ID를 얻는 다른 방법이 없습니다 – Naga

+0

내 앱에서이 작업을 수행하고 있습니다. 이것은 매우 신뢰할 수있는 방법입니다. – kirtan403

0
당신이 알림 ID와 또한 정적 변수에 숫자를 유지할 수 있습니다 내가 스택 통지를 의미 통지를 추가하기위한 트랙을 유지하기 위해 정적 변수를 사용할 수 있습니다

...

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this).setSmallIcon(R.drawable.ic_launcher) 
        .setContentTitle(notificationTitle).setContentText(contentText); 
      NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle(); 
      inboxStyle.setBigContentTitle(notificationTitle + " Details"); 

      // Moves events into the big view 
      for (int i = 0; i < extrasList.size(); i++) { 
       inboxStyle.addLine(extrasList.get(i).getString(mString)); 
      } 

      if (number >= 8) { 
       inboxStyle.setSummaryText("+" + (number - 7) + " more reply(s)"); 
      } else { 
       inboxStyle.setSummaryText(contentText); 
      } 
      mBuilder.setStyle(inboxStyle); 
      mBuilder.setNumber(number); 
      mBuilder.setContentIntent(contentIntent); 
      mBuilder.setAutoCancel(true); 
      mNotificationManager.notify(Integer.parseInt(type), mBuilder.build()); 
+0

누적 된 알림을 수동으로 닫은 후 다음 알림은 정적 변수의 모든 것을 복원합니다. – vitalnik

관련 문제