Как поддерживать соединение в рабочем состоянии, даже когда приложение закрыто (как это реализуют приложения для обмена сообщениями, такие как Whatsapp?)? - PullRequest
0 голосов
/ 27 января 2020

Я хочу получать уведомления о моем приложении android, и для этого мне нужно соединение между сервером и android. Я написал этот код в Деятельности, которая вызывает Сервис. Я получаю уведомления, пока приложение работает и даже если оно работает в фоновом режиме.

Но как только я закрываю приложение вручную, я не получаю уведомления.

У меня есть также пытался использовать BroadcastReceiver для вызова Сервиса, используя следующий код:

Intent myAlarm = new Intent(getApplicationContext(), AlarmReceiver.class);
PendingIntent recurringAlarm = PendingIntent.getBroadcast(getApplicationContext(), 0, myAlarm, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarms = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
Calendar updateTime = Calendar.getInstance();
alarms.setInexactRepeating(AlarmManager.RTC_WAKEUP, updateTime.getTimeInMillis(), 500, recurringAlarm);

и код AlarmReceiver:

public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    Intent myService = new Intent(context, MqttMessageService.class);
    context.startService(myService);
}
}

Но даже тогда возникает та же проблема. Поскольку каждое приложение для обмена сообщениями использует уведомления, я думаю, что мне не хватает того, как это сделать.

...