Поведение кнопки возврата Android для приложения, которое подключается к удаленному серверу - PullRequest
0 голосов
/ 17 марта 2012

Я создаю приложение, которое подключается к удаленному серверу, а затем позволяет вам выполнять действия на этом сервере, отображать данные и т. Д.

Существует действие «Подключиться», позволяющее ввести IP-адрессервер и имеет кнопку подключения.После подключения есть действия B, C, D, которые являются независимыми и воздействуют на различные аспекты сервера.

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

Вот примеры использования для того, как я хочу, чтобы кнопка «назад» и задача «стек назад»поведение на работу:

  1. При первом запуске приложения откройте действие Connect
  2. Если приложение вылетает (не дай Бог), запустите действие Connect.Не пытайтесь вернуться к B, C или D!
  3. Если при просмотре B, C или D и соединение потеряно, кнопка «назад» возвращает вас непосредственно к соединению.
  4. Если ваш стек выглядит как Connect-> B-> C-> D, то вы переходите к экрану Connect и отключаетесь, ваш стек меняется на Connect (только).Вы не можете нажать «назад» и вернуться к B, C или D
  5. Если вы покинете приложение (нажмите кнопку «Домой») и вернетесь, нажав на значок приложения, оно должно вернуться в началостек (при условии, что за это время соединение не было потеряно).
  6. Если вы подключены, «назад» возвращает вас к предыдущему действию.Ex.предположим, что Connect-> B-> C-> D-> Connect-> C-> B.Один «назад» переводит вас в «C», другой «назад» в Connect, другой «назад» в D (то есть в обычный стек).

Любые рекомендации, как это сделать? Особенно пункт 2 выше (вызывает у меня сильную головную боль ... и да, сбой не должен произойти)

Я прочитал руководство по Tasks и Back Stack ,но не могу решить, как все режимы запуска и сходства могут быть применены к этой ситуации.

1 Ответ

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

Напишите класс,

 class MyApplication extends Application{

...

public static boolean isConnected;
...

   } 

Теперь, когда вы отключаетесь или подключаетесь, установите для этого логического значения значение true или false соответственно.И если это логическое значение `true, тогда примите соответствующие меры.

Например,

  if(MyApplication.isConnected){ 
  startActivityB();
 }else{
   startConnectActivity();
 } 

Также помните, что для запуска действия вам необходим контекст действия, поэтому поддерживайте статическую переменную типа Activityв MyApplication и установите его в методе onCreate () вашей первой ACTIVITY, например MyApplication.activityObj = this, а затем вызовите действия с использованием этого контекста, например MyApplication.activityObj.startActivity (....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...