Я довольно новичок в Android, и в настоящее время я работаю над простым клиентом XMPP. Пользователь должен иметь возможность войти в систему и получать уведомления о появлении сообщения XMPP. Должно быть возможно получить доступ к обзору всех сообщений, поступивших в течение текущего сеанса.Как определить начальную активность при перезагрузке приложения Android?
При запуске приложения запускается функция LoginActivity, предлагающая пользователю заполнить его учетные данные. Если заданы правильные учетные данные, фон сервис запускается:
Intent intent = new Intent(this, NotificationService.class);
startService(intent);
При запуске службы уведомления добавляет пакета слушателя в связи XMPP и просит работать на переднем плане. Пользователям предлагается уведомление, вызванное этим запросом переднего плана («Постоянно»). Теперь я предоставил второе действие под названием XMPPClientActivity, отображающее все сообщения, полученные во время сеанса, и простую кнопку выхода. При открытии приложения из в «текущих» уведомления, XMPPClientActivity запускается потому, что уведомление определяется следующим образом:
xmppIntent = new Intent(this, XMPPClientActivity.class);
pendingIntent = PendingIntent.getActivity(this, 0, xmppIntent, 0);
NotificationCompat.Builder xmppBuilder = new NotificationCompat.Builder(this);
xmppBuilder.setContentIntent(pendingIntent);
// Notification details
startForeground(id, xmppBuilder.build());
При открытии приложения с главного экрана однако, LoginActivity снова открывается. Конечно, я хочу запустить XMPPActivity, но я не могу понять, как это сделать. Я искал привязку активности к службе, но я не уверен, что это может помочь. Каков правильный способ сделать это?
хотите ли вы их только когда-либо войти в один раз, если они не нажмите кнопку «Выход»? – codeMagic
Вы всегда можете запустить приложение на целевую страницу. Там, в вашем onCreate, проверьте, если вы уже вошли в систему (возможно, некоторое значение в памяти), а если нет, startActivity активирует активность входа (и завершает работу целевой страницы). После входа в систему установите значение in-memory и startActivity для активности целевой страницы. – dkneller