2015-01-22 2 views
3

내 활동으로 몇 가지 알림이 생성됩니다. 여기복수의 보류 의도?

내가 현재 다른 resultIntents에, 그것을하고있어 방법은 다음과 같습니다 이제

PendingIntent resultPendingIntent = 
    PendingIntent.getActivity(
    context, 
    0, 
    resultIntent, 
    PendingIntent.FLAG_UPDATE_CURRENT 
); 

, 플래그가 필수이기 때문에, 내가 the four flags에서 선택을 강요하고있다. 모든 사람들이 독립적으로 작업하기를 원하면 새로운 알림은 이전 알림의 영향을받지 않습니다.

답변

3

해결책은 여기에서 찾아 냈다 : here.

당신 일치 PendingIntents가 없을 것입니다 수 있도록

다음

내가 무엇을 사용의 고유 한 값으로 의도에에, setAction을 사용했습니다 :

setAction(Long.toString(System.currentTimeMillis())) 
+1

이것은 의미가 없습니다. ACTION을 항상 고유 한 값으로 설정하는 경우,'PendingIntent.FLAG_UPDATE_CURRENT'를 설정하는 것은 쓸모가 없습니다. ** 일치하는'PendingIntent' **가 없기 때문입니다. 고유 한 ACTION 문자열을 설정하면'PendingIntent.getActivity()'에 대한 호출이 항상 ** 새로운 ** PendingIntent를 반환합니다 **. –

+0

네, 그게 제가 실제로 요구 한 것입니다. 일치하는 PendingIndent가없는 방법을 찾고있었습니다. 대답은 다른 stackoverflow 대답에서 인용하기 때문에 플래그가 있습니다. 혼란이 생겨서 죄송합니다. –

+1

답변을 편집하고 깃발을 삭제할 수 있습니다. 제가 말했듯이, 국기는 의미가 없으며 다른 사람들을 혼란스럽게 할 것입니다. –

1

을 공식 문서에서

동시에 여러 개의 고유 한 PendingIntent 객체가 동시에 필요하면 (예 : 두 개의 알림을 동시에 표시하는 등), 무언가 t가 있는지 확인해야합니다 모자는 서로 다른 PendingIntents와 연결시키는 것과 다릅니다. 이것은 Intent.filterEquals에 의해 고려되는 인 텐트 속성이거나 getActivity (Context, int, Intent, int), getActivities (Context, int, Intent [], int), getBroadcast (Context, int)에 제공된 다른 요청 코드 정수 중 하나 일 수 있습니다. , Intent, int) 또는 getService (Context, int, Intent, int)를 반환합니다.

Intent.filterEquals 문서의 두 가지 의도가 의도 해상도 (필터링)의 목적을 위해 동일한 경우

가 결정합니다. 즉, 해당 액션, 데이터, 유형, 클래스 및 카테고리가 동일한 경우입니다. 이는 인 텐트에 포함 된 추가 데이터를 비교하지 않습니다.

무제한의 PendingIntents가 필요한 경우 Intent.setData을 사용하여 고유 한 값을 지정하는 것이 좋습니다. 그룹화 할 수 있으면 setType 또는 addCategory을 사용하여 필요한 고유 한 PendingIntents 수를 줄이십시오.