2013-04-10 2 views
0

Я ищу способ получить намерение для моего приложения Android в моей реализации Application. Сам класс Application не имеет getIntent() только Activities, похоже, обладает этой способностью.Возможно ли получить намерение моего приложения для Android?

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

+0

разрешает все намерения «поймать» одну и ту же активность - «chooser» ... in onСоздание этой операции вы будете выбирать/запускать «реальную» активность (с тем же намерением) и заканчивать() действие «chooser». .. вы также можете поместить специальный Extra to Intent, который передается от «chooser» до «real», который указывает, зарегистрирован ли пользователь и вводит ли пользовательский материал только в «chooser» Acticity – Selvin

ответ

1

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

class LoginActivity extends Activity { 
    public void onCreate(Bundle savedInstanceState) { 
     if (getIntent().hasExtra(...)) { 
      doLogin(); 
     } 
    } 

class MyActivity extends LoginActivity { 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // user is now logged in 
     setContentView(...); 
    } 
} 

LoginActivity существует только для того, чтобы ваши другие действия наследовали, поэтому не упоминайте об этом в своем AndroidManifest.xml. Вы не можете получить Intent в своем Application, потому что такая вещь не имеет смысла. Объект Application существует до тех пор, пока работает процесс. В любой момент времени может существовать нулевое, одно или более чем одно из ваших действий в реальном времени, так что бы вы вернули Intent?

Должен признаться, я немного озадачен тем, что связано с входом в систему Intent. Похоже, вам нужен глобальный объект с состоянием/учетными данными сеанса, а не с чем-либо, связанным с намерениями.

+0

Мне нравится идея с наследованием. Так же логика в общем базовом классе +1. – rekire

0

Вы должны вызвать getIntent() вашей деятельности Launcher

+0

Как я уже сказал, у меня есть несколько «пусковых установок», и я хочу чтобы избежать изменения каждого вида деятельности. – rekire

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