Неверный стек истории активности при первой установке на устройство? - PullRequest
7 голосов
/ 04 декабря 2009

Редактировать / обновить:

В качестве обновления к приведенной ниже проблеме я нашел точное действие, которое вызывает ее.

  1. Скачать апк из URL через браузер Android
  2. Установите приложение.
  3. После установки приложение предлагает два варианта: «Открыть» или «Готово».
  4. Если вы выберете «Открыть», начнется необычное поведение, описанное ниже.
  5. Если вы выберете «Готово», а затем запустите приложение из панели приложений, оно будет работать нормально.

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


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

Тестовое приложение - это просто два действия, A и B. Действие A запускает B. Это все, что он делает. Rest - это сгенерированный мастером код шаблона из Eclipse.

Когда пользователь устанавливает приложение (через веб-URL apk) и запускает его в течение первого времени, я получаю стек действий вне очереди:

-Пользователь запускает приложение, A сверху.
-Они запускают B, нажав кнопку. B находится на вершине стека.
-Пользователь нажимает кнопку главного экрана.
-Пользователь возвращается в приложение, вместо B. отображается А *.
-Пользователь нажимает клавишу возврата, отображается B!
-Пользователь снова нажимает клавишу возврата, отображается A!
- Пользователь снова нажимает клавишу «Назад», отображается начальный экран.
-Теперь стек чист, и приложение теперь ведет себя "нормально"!

Кто-нибудь еще видит это? Это почти точно так же, как эта известная ошибка, однако мои пользователи не устанавливают из eclipse: http://code.google.com/p/android/issues/detail?id=2373&q=first%20%20i...

Я могу предоставить тестовое приложение / источник, если кто-то захочет попробовать. Это манифест, в котором нет особых настроек.

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

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

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

Спасибо

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