Не думаю, что ты можешь. Если вы посмотрите документацию Receiver Lifecycle , вы увидите, что жизненный цикл ограничен onReceive.
Если жизненный цикл получателя достаточно длинный, чтобы пользователь мог с ним взаимодействовать, я бы просто использовал BroadcastReceiver для запуска службы. Служба может делать две вещи:
- запустить фоновый поток для выполнения вашей длительной задачи
- зарегистрировать (другой) BroadcastRecevier в IntentFilter для обновления строки (как обновляется пользователем в действии). Когда служба получает намерение, она обновит строковое значение. Обратите внимание, что вам придется синхронизировать между службой и фоновым потоком (оставлено в качестве упражнения для заинтересованного читателя).
Затем ваш код активности запускает Intent каждый раз, когда пользователь изменяет указанное значение.
Хорошая вещь в этом решении - если служба не работает, тогда намерение сбрасывается на пол, и вам вообще не нужно запускать службу. Если служба запущена, происходит обновление.