Активность Android начинается параллельно? - PullRequest
0 голосов
/ 10 марта 2012

У меня есть четыре вида деятельности.

like (1) (2) (3) (4).

(1) - первое или основное занятие.

У меня есть нижняя панель для этих действий.если я нажму (2), я хочу открыть второе действие.после этого, если я нажму (3), я хочу открыть третье действие.и если я нажму (4), я хочу открыть четвертое действие.

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

прикреплено изображение для облегчения понимания ..

enter image description here

откройте это изображение на новой вкладкесмотреть ясно.Я хочу сделать это без использования tabhost.Можно ли это сделать с помощью группы действий.

Предложите любой пример или учебник для этого.

спасибо Rock Brown

Ответы [ 4 ]

2 голосов
/ 11 марта 2012

Этот вариант использования уже встроен в платформу:

В вашем AndroidManifest.xml есть элемент activity для каждого действия.В элементе activity для 1 задайте launchMode:

android:launchMode="singleTask"

Это заставляет платформу запускать только один экземпляр Activity 1 в приложении task (который являетсястек действий.)

При запуске activity 1, 2, 3 или 4 установите флажки Intent, включающие FLAG_ACTIVITY_REORDER_TO_FRONT:

intent.setFlags(intent.getFlags() | FLAG_ACTIVITY_REORDER_TO_FRONT);

Это заставляет платформу переносить любые существующие экземпляры 1, 2, 3 или 4 на вершину стека activity, вместо того, чтобы создавать новый activity и помещать его поверх стека.

0 голосов
/ 11 марта 2012

Операция может быть закрыта в любой момент ОС, если нагрузка на память прибавляется, а ваша активность находится в фоновом режиме.

0 голосов
/ 11 марта 2012

Я согласен с Aashish в том, что вы, вероятно, захотите взглянуть на учебник TabHost.

Но, да, вы можете сделать это без TabHost.

Операция (1) будет запущена первой, если предполагается, что это операция запуска, как определено в вашем манифесте. Вы можете переключиться на одно из других действий в любое время, используя Context.startActivity (Intent).

Вы можете сделать это даже до того, как (1) отобразится на основе состояния, сохраненного в пакете или сохраненного в предпочтениях пользователя (то есть он перезапускается на том же действии, которое использовалось в последний раз). В таком случае вы не хотите, чтобы текущее действие находилось в backstack, поэтому вы вызываете Activity.finish () после запуска следующего действия, так что теперь у вас есть.

public void showNextActivity () { Intent intent = new Intent (this, NextActivity.class); startActivity (намерение); Конец(); // так что ThisActivity не находится в backstack. }

Вероятно, у вас должен быть какой-то код, который будет использоваться вашими действиями для управления виджетами, которые используются для переключения между действиями (например, кнопками) и для управления переключением. Обратите внимание, что даже если у каждого действия есть свои собственные ресурсы, вы можете использовать одинаковые идентификаторы ресурсов для каждого - поэтому кнопка, которая выбирает действие 2, имеет идентификатор «act2» для каждого действия. Это облегчает совместное использование кода.

0 голосов
/ 11 марта 2012

Пожалуйста, пройдите учебник TabHost

TabHost для Android - Действия в каждой вкладке

вот хороший пример

...