Заставить NativeActivity вести себя как Сервис

У меня есть приложение, в основном написанное на нативном коде, основанное на NativeActivity. В основном это работает в полноэкранном режиме, и работает нормально, как это. Но для одного конкретного случая использования мне нужно иметь возможность запускать его в фоновом режиме, без головы, общаясь с пользователем через уведомления и тосты.

Идиоматический способ сделать это на Android - использовать Сервис; но я не могу сделать это здесь, потому что код обязательно должен быть NativeActivity (потому что нативный код опирается на модель событий NativeActivity, и, прежде чем вы спросите, нет, я не могу это изменить).

Поэтому мне нужен какой-то способ заставить Activity вести себя (по крайней мере, для пользователя) как Сервис.

Наименее плохой способ, которым я могу придумать, - это как-то скрыть Activity, чтобы она выполнялась, но не показывалась пользователю. Есть даже метод Activity.setVisible(), который должен это делать; но когда я пытаюсь это сделать, кажется, это не работает должным образом. (Действие появляется, но пустое, а затем исчезает, когда приложение отображает свой первый диалог. Это на сотовом планшете, если это имеет значение.)

В идеале, конечно, я хотел бы, чтобы NativeService работал с NativeActivity, но, к сожалению, такой вещи не существует, и от просмотра исходного кода до NativeActivity, написание NativeService выглядит весьма нетривиально.

Предложения?

0 ответов

Другие вопросы по тегам