Здравствуйте. Порыл интернеты, но так и не смог найти ответ. Может формулировал вопрос не так.
Суть в следующем. В PasswordActivity пользователь вводит номер телефона, нажимает кнопку "получить код по СМС". При этом показывается поле ввода кода из СМС. В это время при имеющихся разрешениях, class SMSMonitor extends BroadcastReceiver ждет СМС. Получает. Парсит и передает в class SmsService extends Service. SmsService обрабатывает тело СМС извлекает нужные данные, решает какой активити их передать. Передает, например, в PasswordActivity так:
Intent intent = new Intent(this, PasswordActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("sms_code", code);
startActivity(intent);
Таким образом запускается еще одна PasswordActivity в новом таске. Затем пользователь вводит новый пароль и он, вместе с кодом проверки из СМС отправляется на сервер. При успехе смены пароля я делаю finish() для активити. Текущая PasswordActivity закрывается, а под ней отображается всё ещё та старая PasswordActivity с полем ввода кода из СМС.
При этом я в манифесте для PasswordActivity выставлял свойства android:launchMode= "singleInstance" и что то еще... Играл с флагами Intent.FLAG_ACTIVITY_...
Есть флаги, которые вроде как и не создают новый таск, но при этом в PasswordActivity не отрабатывают ни onCreate, ни onResume.
После перехвата СМС, мне обязательно нужно продолжить работу с активностью, т.к. требуются дальнейшие действия пользователя.
Одним словом, как мне передать данные из сервиса в уже запущенную активность, которая даже не в паузе?