IT TIP

안드로이드 보류중인 의도 알림 문제

itqueen 2020. 10. 25. 13:25
반응형

안드로이드 보류중인 의도 알림 문제


내 앱에서 알람이 발생하고 눌렀을 때 활동이 시작되었다는 알림이 시작됩니다. 문제는 두 개 이상의 경보를 생성하면 알림에서 시작된 활동이 첫 번째 경보와 동일한 추가 기능을 갖게된다는 것입니다. 문제는 내가 보류중인 의도에 넣은 의도 또는 보류중인 의도 자체에 있다고 생각합니다. 나는 이것들 중 하나에 깃발을 달아야 할 것 같지만 어느 것을 알지 못합니다.

Intent showIntent =new Intent(context, notificationreceiver.class);
    showIntent.putExtra("details", alarmname);

PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
        showIntent, 0); 

    notification.setLatestEventInfo(context, "The event is imminent",
            alarmname, contentIntent);

그리고 알림 수신자

Bundle b = getIntent().getExtras();
    String eventname = b.getString("details");
    details.setText(eventname);

"세부 정보"추가는 다른 값을 갖는 대신 다음에 알림이 발생할 때마다 동일합니다. 의도를 설정할 때까지 올바른 값이 "세부 사항"으로 이동하므로 알림을 누를 때마다 첫 번째 의도를 얻는 문제가 발생합니다. 올바른 인 텐트를 시작하려면 어떻게해야합니까? 감사합니다!


문제는 두 개 이상의 경보를 생성하면 알림에서 시작된 활동이 첫 번째 경보와 동일한 추가 기능을 갖게된다는 것입니다.

옳은.

올바른 인 텐트를 시작하려면 어떻게해야합니까?

한 번에 등록 할 두 개의 알람이 있는지 여부에 따라 다릅니다.

그렇지 않다면, 당신은 할 수 사용 FLAG_ONE_SHOT하거나 다른 하나 PendingIntent플래그는 두 번째 가지고 PendingIntent사용하는 새로운 엑스트라를.

그러나 한 번에 두 개의 알람을 등록하고 다른 Intent추가 기능을 사용하는 경우 두 개 를 비교할 때 반환 Intents되도록 두 개 를보다 실질적으로 다르게 만들어야합니다 . 예를 들어, 당신은 부를 수 또는 각각에 대해 다른 값을 제공합니다 .filterEquals()falsesetData()setAction()Intent


이 문제를 해결 한 방법 은 PendingIntent를 얻을 때 고유 한 requestCode 를 할당하는 것입니다 .

PendingIntent.getActivity(context, requestCode, showIntent, 0); 

이렇게하면 시스템에 다른 / 고유 한 인 텐트 인스턴스를 등록하게됩니다. 팁 : requestCode를 고유하게 만드는 좋은 방법은 현재 시스템 시간을 전달하는 것입니다.

int requestID = (int) System.currentTimeMillis();

또 다른 해결책 :

다음 과 같이 PendingIntent.FLAG_UPDATE_CURRENT를 사용하십시오 .

PendingIntent contentIntent = PendingIntent.getActivity(this, 0,i, PendingIntent.FLAG_UPDATE_CURRENT);

이것은 나를 위해 일했다


내 앱 에이 문제가 있었고 알림 의도를 재정의하기 위해 난수를 생성했습니다.

int random= new Random().nextInt();
PendingIntent resultPendingIntent =
      stackBuilder.getPendingIntent(
              random,
              PendingIntent.FLAG_UPDATE_CURRENT
      );

참고 URL : https://stackoverflow.com/questions/3009059/android-pending-intent-notification-problem

반응형