У меня есть две деятельности в моем приложении:активность сворачивается при запуске его из службы переднего плана
A - Войти активность
B - основная активность
Когда пользователь нажимает на кнопку входа в деятельности А.И. я начинаю обслуживание. В методе сервиса OnCreate() запускает активность B, как это:
Intent notificationIntent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
NotificationCompat.Builder builder = new NotificationCompat
.Builder(getApplicationContext());
builder.setContentIntent(pendingIntent);
builder.setContentTitle("Activity B in foreground service");
builder.setSmallIcon(R.drawable.ic_launcher);
startForeground(1, builder.build());
Проблема заключается в том, что активность B запускает минимизирован. Я должен нажать кнопку обслуживания на панели уведомлений, чтобы максимизировать мою активность (заполнить экран). Как я мог запустить Activity B из сервиса обычным способом - не сводя его к минимуму (помещая на задний план)?
Ваше решение работает, но когда я надавливаю на службу Notifcation позже - Activity B перезагружается в исходное состояние. Например, если я открываю фрагмент в Activity B и нажимаю кнопку Notifcation службы - перезагрузка Activity B без открытого фрагмента. Такое поведение я не заметил в своем первоначальном примере кода. Может быть, есть способ открыть сервисное уведомление программно? – user2999943
Вы можете исправить это, добавив 'Intent.FLAG_ACTIVITY_SINGLE_TOP' в' notificationIntent' или объявив Activity B с 'launchMode =" singleTop "' в манифесте. Это предотвратит создание Android нового экземпляра Activity B, если в вашей задаче уже есть экземпляр Activity B в верхней части стека действий. –