Android: Как сделать так, чтобы программа запуска всегда открывала основное действие вместо дочернего? (или иным образом) - PullRequest
9 голосов
/ 26 мая 2010

У меня есть действия A и B. Это A с фильтром намерений LAUNCHER (т.е. действие, которое запускается, когда мы щелкаем значок приложения на главном экране).

A запускает B, используя startActivity(new Intent(A.this, B.class)).

Когда пользователь открывает действие B, а затем помещает мое приложение в фоновый режим, и позже процесс моего приложения прерывается, когда пользователь снова запускает мое приложение, B открывается вместо A.

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

Есть ли у вас какие-либо предложения, что мне делать в этой ситуации?

Ответы [ 2 ]

10 голосов
/ 02 марта 2011

Ну, у вас действительно должно быть действие B, чтобы инициализировать ваши ресурсы тоже. Но вы можете поместить android:clearTaskOnLaunch="true" в манифест для действия А, чтобы программа запуска всегда выполняла это действие.

0 голосов
/ 26 мая 2010

Вы пытались установить флаг FLAG_ACTIVITY_NEW_TASK при создании намерения. В вашем случае, пожалуйста, попробуйте startActivity(new Intent(A.this, B.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK))

...