Недавно добавленное действие, обозначенное как Main, не всегда отображается как «Main». - PullRequest
1 голос
/ 20 февраля 2012

Позвольте мне объяснить мое затруднительное положение.

Я уже некоторое время создаю приложение, где оно сразу же вводит мой MainActivity.class. У меня была эта активность объявлена ​​в файле AndroidManifest.xml как таковая:

<intent-filter>
   <action android:name="android.intent.action.MAIN" />
   <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

Затем я понял, что хочу добавить активность входа в свое приложение, поэтому требуется NewMainActivity.class. Я смог успешно реализовать это новое задание. И я изменил <intent-filter> старого MainActivity.class на следующее:

<intent-filter>
   <action android:name="android.intent.action.VIEW" />
   <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

Однако здесь возникает моя проблема.

Когда я нажимаю клавишу возврата на странице входа в систему (NewMainActivity.class), она проходит через методы onPause(), onStop() и onDestroy(). Когда я снова запускаю приложение, страница входа в систему (NewMainActivity.class) не отображается, вместо этого отображается старая MainActivity.class.

Кто-нибудь может догадаться, что я все еще скучаю / делаю неправильно? Мне кажется, что это всегда должно начинаться на странице входа каждый раз. Дайте мне знать, поможет ли пример кода.

Ответы [ 2 ]

0 голосов
/ 19 мая 2012

Если сначала предложение Юрия не сработало, и вы сделали что-то похожее на то, что я сделал: копирование и вставка рабочего пространства между несколькими компьютерами и загрузка проекта для затмения каждый раз, тогда просто запустите новый проект и скопируйте актуальный текст во всех ваших классах до новых новых классов в новом проекте.

0 голосов
/ 20 февраля 2012

Удалите из старого файла MainActivity.class определенный вами фильтр намерений:

<intent-filter>
   <action android:name="android.intent.action.VIEW" />
   <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

Обновление: Сначала я неправильно понял ваш вопрос. Фильтр намерений, который я предложил удалить, ничего не делает, кроме экспорта вашей активности. Это означает, что любое приложение может вызывать активность вашего MainActivity.class. Поэтому в любом случае его следует удалить.

Теперь о входе в систему. Как я понимаю, ваш сценарий следующий. Когда вы запускаете приложение, оно сначала запускает вход в систему. Затем вы вводите свои учетные данные, и основное действие появляется, если процесс входа в систему прошел успешно.

Таким образом, у вас есть два действия в стеке: вход в систему и ваш основной класс. Когда вы затем нажимаете кнопку «Домой» и запускаете приложение еще раз, оно начинается с последнего действия в стеке, т.е. основного действия.

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

...