9

Mam mały problem, który został bugging mnie ..Otwarte android app od powiadomienia PUSH

Wcześniej skonfigurować mój wniosek do otrzymywania powiadomień push z miejskiej Sterowiec i że wszystko działa poprawnie, ale kiedy dotknij powiadomienia w centrum powiadomień nic się nie dzieje.

Chcę, aby aplikacja otworzyła się, gdy użytkownik dotknie powiadomienia PUSH - co mogę zrobić, aby to osiągnąć?

Każda pomoc jest zawsze bardzo cenna.

Dzięki

+0

Czy twój proces aplikacji żyje w tle? – param

Odpowiedz

9

Tworzenie oczekującego zamiar rozpocząć działalność i ustawić go w zgłoszeniu za pomocą setLatestEventInfo.

Przykład:

Context context = getApplicationContext(); 
CharSequence contentTitle = "My notification"; 
CharSequence contentText = "Hello World!"; 
Intent notificationIntent = new Intent(this, MyClass.class); 
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent); 

Więcej informacji można znaleźć here

+0

Gdzie jest ten kod? Mam takie samo pytanie jak pierwszy plakat, ale nie znajduję logicznego miejsca na to. Jeśli to ma znaczenie, używam Pushwoosh do wysyłania moich powiadomień. – Magua

+0

Ten kod służy do tworzenia powiadomienia. Czy masz jakąś klasę odbiornika ...? Umieść go na nowo. – San

1

Po jednym z ich projektów próbki (https://github.com/urbanairship/android-samples/tree/master/app/src/main/java/com/urbanairship/sample), można rozszerzyć klasę AirshipReceiver a następnie zastąpić metodę onReceive. Pomogło mi to:

@Override 
public void onReceive(Context context, Intent intent) { 
    super.onReceive(context, intent); 

    String action = intent.getAction(); 
    if (action.equals(PushManager.ACTION_NOTIFICATION_OPENED)) { 
     Intent launch = new Intent(Intent.ACTION_MAIN); 
     launch.setClass(UAirship.shared().getApplicationContext(), MyHome.class); 
     launch.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     launch.putExtra("doWhatever",true); 
     UAirship.shared().getApplicationContext().startActivity(launch); 
    } 

}