Android запускает обмен мгновенными сообщениями из конструктора уведомлений

Я следовал учебнику для создания сообщений заявление. На основе этого руководства клиент sinch запускается в основной активности. Я могу отправлять push-уведомления с помощью Parse и создавать построитель уведомлений, но когда пользователь нажимает на него, очевидно, что клиент sinch не запускается и, следовательно, не работает.
Как мне запустить клиент sinch из pendingIntent в построителе уведомлений, который перенаправит меня прямо к MessagingActivity? Где и как вызывать MessagingService и BroadcastReceiver?


person abeikverdi    schedule 22.09.2015    source источник
comment
Я настоятельно рекомендую использовать обмен сообщениями Google Cloud вместо с. В конце концов, SInch не спасает вас от работы. И GCM имеет гораздо лучшую документацию и сообщения SO, которые помогут вам. Работал с синчем 3 недели, ничего не добился. Я строю свой собственный в GCM, это заняло 1 неделю. Пища для размышлений   -  person Japes    schedule 26.09.2015
comment
Спасибо. Я тоже был немного разочарован этим. Им нужно сделать гораздо больше, я чувствую.   -  person abeikverdi    schedule 26.09.2015
comment
да, концептуально это прилично. Исполнение мягко говоря глючное.   -  person Japes    schedule 26.09.2015
comment
Да .. Я также имел дело с проблемой в push-уведомлении. Я дам ему еще один шанс, и если я не смогу это исправить, я должен двигаться дальше. У вас есть идеи, как я могу запустить службу, когда приложение закрыто из push-уведомления?   -  person abeikverdi    schedule 26.09.2015
comment
в gcm это очень просто. Получите рег-токен, подпишитесь на тему, а затем в бэкенде сделайте POST в тему. Я отправляю push-уведомления более чем 1 миллиону пользователей в неделю. работает очень хорошо.   -  person Japes    schedule 26.09.2015
comment
Благодарю. Позвольте мне посмотреть, что я могу с этим поделать.   -  person abeikverdi    schedule 26.09.2015
comment
удачи. Если вы делаете ТАК посты об этом, пожалуйста, отметьте меня в комментариях. я рад помочь   -  person Japes    schedule 26.09.2015


Ответы (1)


в вашем методе уведомления вы можете добавить это:

Intent intent = new Intent(this, MainActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
            intent.putExtra("fromNotification", true);
            intent.putExtra(INTENT_EXTRA_ID, senderId);
            intent.putExtra(INTENT_EXTRA_NAME, name);

            NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setContentIntent(PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT));

вместо MainActivity.class вы меняете его на MessagingActivity.class и ставите нужные дополнения, используя intent.putExtra() .

person Kareem Essam Gaber    schedule 30.09.2015
comment
Конечно, но как тогда запустить службу? Во многих случаях служба может просто остановиться. Нужно ли запускать службу и в BroadcastReceiver? - person abeikverdi; 01.10.2015
comment
для меня я просто запускаю свою службу из GCMIntentService всякий раз, когда я получаю новый толчок, подобный этому: private void connectToService() { getApplicationContext().bindService(new Intent(GcmIntentService.this, SinchClientService.class), GcmIntentService.this, Context.BIND_AUTO_CREATE); }, а затем я вызываю connectToService() в onHandleIntent(Intent intent), не забудьте позволить GCMIntentService реализовать ServiceConnection, затем в onServiceConnected вы добавляете то, что вам нужно сделать. - person Kareem Essam Gaber; 01.10.2015