9

Есть небольшую проблему, которая прослушивала меня ..Открыть приложение для Android от уведомления PUSH

Я настроил мое заявление на получение PUSH уведомления от городского дирижабля, и что все работает нормально, но когда я нажимаю на уведомлении в центре уведомлений ничего не происходит.

Я хочу, чтобы мое приложение открывалось, когда пользователь удаляет уведомление PUSH - что я могу сделать для достижения этого?

Любая помощь, как всегда, очень ценится.

Благодаря

+0

Является ли ваш процесс подачи заявки в фоновом режиме? – param

ответ

9

Создать отложенную Intent, чтобы начать свою деятельность и установить его в уведомлении, используя setLatestEventInfo.

Пример:

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); 

Более подробную информацию можно найти here

+0

Куда уходит этот код? У меня такой же вопрос, как и исходный плакат, но я не нахожу логического места для этого. Если это имеет значение, я использую Pushwoosh для отправки уведомлений. – Magua

+0

Этот код предназначен для создания уведомления. У вас есть класс приемников ...? Поместите его в onreceive. – San

1

После одного из своих демонстрационных проектов (https://github.com/urbanairship/android-samples/tree/master/app/src/main/java/com/urbanairship/sample), вы можете расширить класс AirshipReceiver, а затем переопределить OnReceive метод. Это сделало трюк для меня:

@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); 
    } 

} 
Смежные вопросы