Я следовал учебнику для создания сообщений заявление. На основе этого руководства клиент sinch запускается в основной активности. Я могу отправлять push-уведомления с помощью Parse и создавать построитель уведомлений, но когда пользователь нажимает на него, очевидно, что клиент sinch не запускается и, следовательно, не работает.
Как мне запустить клиент sinch из pendingIntent в построителе уведомлений, который перенаправит меня прямо к MessagingActivity? Где и как вызывать MessagingService и BroadcastReceiver?
Android запускает обмен мгновенными сообщениями из конструктора уведомлений
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
Конечно, но как тогда запустить службу? Во многих случаях служба может просто остановиться. Нужно ли запускать службу и в BroadcastReceiver?
- person abeikverdi; 01.10.2015
для меня я просто запускаю свою службу из
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