2012-11-27 5 views
10

Android에서 푸시 알림을 사용하고 있습니다. 푸시 알림을 받으면 응용 프로그램이 아직 실행중인 경우 응용 프로그램을 열고 싶습니다. 그렇지 않으면 응용 프로그램이 새 인스턴스를 열어야합니다.Android - 깃발 활동을 사용하여 푸시 알림을 클릭 한 후 앱을 열거 나 다시 시작하십시오.

내가

PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 
    Intent.FLAG_ACTIVITY_CLEAR_TOP | 
    Intent.FLAG_ACTIVITY_SINGLE_TOP | 
    Intent.FLAG_ACTIVITY_NEW_TASK); 

을 사용하고 있습니다하지만 지금은 푸시 알림을 수신하고 나는 그것을 클릭하면, 아무 일도 일어나지 않습니다.

어떻게 flagIntents를 사용하여이 문제를 해결할 수 있습니까?

답변

13

Intent에 의도 플래그를 설정해야합니다. PendingIntent을 받기 위해 전화를 지정했습니다. 이 시도 : 안드로이드 Mainfest에서 일 다음

notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | 
    Intent.FLAG_ACTIVITY_SINGLE_TOP | 
    Intent.FLAG_ACTIVITY_NEW_TASK); 
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, 
    notificationIntent, 0); 
+0

예,이 작품 파일. Ecpet 지금 나는 또 다른 문제가있다. 푸시 알림이 수행해야하는 동일한 코드가 포함되어 있기 때문에 onCreate()에있는 실행 코드를 실행하는 방법이 있습니까? 이제 onCreate가 호출되지 않으므로 코드가 실행되지 않습니다. – DijkeMark

+1

'Intent.FLAG_ACTIVITY_SINGLE_TOP' 플래그를 설정하지 않으면 현재 활동 인스턴스가 삭제되고 새 인스턴스가 생성됩니다 (따라서 onCreate()가 호출됩니다). –

+0

내가 원하는대로 작동합니다. – DijkeMark

1

세트

android:noHistory="true" 
android:launchMode = "singleTop" 
+0

왜 'android : noHistory = "true"'및'android : launchMode = "singleTop"'입니까? –

관련 문제