Android — Запуск активности без запуска

#android #android-activity

#Android #android-активность

Вопрос:

Как я могу запустить одно действие, фактически не запуская его на экране?

Комментарии:

1. Как мы можем понять, что вы имеете в виду, если вы не даете дополнительных объяснений?

2. Например: у меня есть 2 действия. Действие A и B. Действие B запускает службу, как только она запускается. Но я хочу запустить службу через действие A, поэтому мне нужно каким-то образом запустить действие B из A, не показывая его на экране

3. Мне также было интересно, как это сделать. Лучшим решением, которое я нашел, был вызов функции finish () после запуска моей службы в activity B .. Я действительно надеюсь, что здесь вы получите лучший ответ..

4. Просто не делайте этого. Это звучит как недостаток в вашем дизайне.

Ответ №1:

Например: у меня есть 2 вида деятельности. Действие A и B. Действие B запускает службу, как только она запускается. Но я хочу запустить службу через действие A, поэтому мне нужно каким-то образом запустить действие B из A, не показывая его на экране

Шаг # 1: Вызов startService() в действии A.

Шаг № 2: Нет шага № 2.

Если вы хотите иметь некоторый общий код, в котором либо Activity A, либо Activity B могут запускать службу, создайте статический метод или создайте базовый класс, от которого наследуются как A, так и B.

Комментарии:

1. Да, но проблема в том, что Служба использует метод внутри действия B. И если я использую startService () из действия A, я получаю исключение nullpointerexception, потому что значения в действии B не были инициированы.

2. @Carnal: «Да, но проблема в том, что Служба использует метод внутри Activity B» — избавьтесь от этого. Вы никогда не должны этого делать. Чтобы уточнить, Service не следует пытаться вызывать методы на Activity . Activity Может быть уничтожен Android в любой момент. Если a Service может достичь Activity , у вас утечка памяти. Я гарантирую вам, что есть лучшие решения для любой проблемы, которую вы пытаетесь решить таким образом.

3. Здравствуйте, моя проблема, которая близка к первой, заключается в запуске моего приложения с помощью действия, которое выбирает пользователь. Обычно я запускаю ActivityA по умолчанию, затем ActivityA проверяет настройки и запускает ActivityB, C, D … затем ActivityA закрывается. Как я могу этого добиться?