1

В некоторых условиях моего приложения запускается, позвонив по одному из моих Broadcast-Receivers или Services (и т.д.), , но я хочу, чтобы предотвратить компонент, который используется для намерения для начала.Stop намерения от неоспоримого выполнено - в заявке подклассе

Почему: Потому что мне нужно сделать некоторые предварительные инициализации работы бегут, прежде чем любой компонент должен начать. Но эта работа может бытьдолго работает вещь, поэтому я может не только выполнять это внутри моего приложения подкласса в главном потоке.

Я подклассифицирую Application в своем приложении. Поэтому мой подход был бы , чтобы каким-то образом помешать намерению в моем подклассе приложения onCreate() и вместо этого запустит конкретную мою службу, которая запускает предыдущую инициализацию и повторно вызывает намерение, которое было намеренно использовано после этого.

Можете ли вы поместить изображение, возможно, сделать это? Спасибо!

Пс .: У меня много компонентов, которые могли бы начать мое приложение. Я не хочу включать код состояния внутри каждого компонента.

ответ

1

, но я хочу предотвратить компонент, который используется для намерения начать.

Помимо сбоев в работе приложения, это невозможно. И даже тогда компонент никогда не будет запущен.

Поэтому мой подход был бы каким-то образом Intervent намерения в OnCreate() мое приложении подкласса и вместо этого начать конкретную услугу шахты, которая проходит предварительную инициализацию и повторно вызывает намерение, что было намеренно используется после этого.

В дополнение к пользовательскому ПЗУ с пользовательской реализацией фреймворка это невозможно. У вас нет доступа к необходимой вам информации, и у вас нет средств для остановки компонента.

И, если вы : в случае, когда пользовательский ПЗУ является возможностью, переместите эту операцию инициализации на основной процесс ОС (то есть не на Android SDK-приложение, но стандартный процесс Linux начался во время загрузки) , и ваше приложение использует IPC для получения этих данных.

+0

Сад. Интересно, как я должен выполнять длительные миграции или внутренние «обновления данных приложений» (например, данные sql-данных), прежде чем что-нибудь еще начнется. Я боюсь, что нет другого способа подкласса всех моих компонентов и позволить им наследовать проверки инициализации. – JacksOnF1re

+0

@ JacksOnF1re: Вы делаете эту работу раньше. Например, предположим, что вы отправляете обновление приложения со значительным изменением схемы, которое потребует времени для завершения. Вы начинаете эту работу сразу после установки обновления.В частности, для пользователей, которые выбирают автоматические обновления, работа, скорее всего, будет завершена задолго до того, как вы активируете действие приложения. Вам не нужно подклассифицировать что-либо новое, поскольку у вас уже есть эти классы. Логика инициализации может находиться в отдельном классе утилиты, а не в классе базовых компонентов. – CommonsWare

Смежные вопросы