-3

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

У меня есть приложение, у которого есть три действия, и когда я пользуюсь кнопкой HOME, и я снова открываю приложение, он всегда переходит в FIRST-активность, даже если я был во второй или третьей.

EDIT 3:Мое приложение поставляется в трех мероприятиях, то первый из них является основным меню, вторая представляет собой карту таблиц и третий один являются данные таблиц. В зависимости от конфигурации, закрытие третьего действия должно привести меня к первому или второму, и когда я покину третью операцию, я не хочу, чтобы она оставалась в стеке «Действия». Моя программа отлично работает с Activity на другую. Моя проблема заключается в том, что кажется, что когда я использую кнопку «Главная», мое приложение заканчивает каждую активность, кроме первой.

Возможно, мне нужно изменить что-либо на манифесте, или, может быть, мне нужно использовать специально RestoreInstanceState, но я так сильно ищу и ничего не могу найти. Заранее спасибо!

Edit 1: Я добавляю мое «приложение» XML часть манифеста:

<application 
    android:allowBackup="true" 
    android:icon="@drawable/icobaccus" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name="com.example.tpv2_tablet.Activity_Start" 
     android:label="@string/app_name" 
     android:screenOrientation="landscape" 
     android:windowSoftInputMode="adjustPan" 
     android:configChanges="keyboardHidden|keyboard" 
     android:theme="@android:style/Theme.NoTitleBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name="com.example.tpv2_tablet.Activity_Zonas" 
     android:label="@string/app_name" 
     android:screenOrientation="landscape" 
     android:windowSoftInputMode="adjustPan" 
     android:configChanges="keyboardHidden|keyboard" 
     android:theme="@android:style/Theme.NoTitleBar"> 
    </activity> 
    <activity 
     android:name="com.example.tpv2_tablet.PrintDialogActivity" 
     android:label="@string/app_name" 
     android:screenOrientation="landscape" 
     android:windowSoftInputMode="adjustPan" 
     android:configChanges="keyboardHidden|keyboard" 
     android:theme="@android:style/Theme.NoTitleBar"> 
    </activity> 
    <activity 
     android:name="com.example.tpv2_tablet.Activity_Mesas" 
     android:label="@string/app_name" 
     android:screenOrientation="landscape" 
     android:windowSoftInputMode="adjustPan" 
     android:configChanges="keyboardHidden|keyboard"> 
    </activity> 
</application> 

Edit 2: Может быть, я делаю что-то неправильно при вызове других мероприятий или я вызывая неправильный флаг:

Intent intent = new Intent(Activity_1.this, Activity_2.class); 
          intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
          finish(); 
          startActivity(intent); 
+1

Если вы размещаете свой код, который мы можем помочь тебе. Но прежде чем просить проверить, как работает «Жизненный цикл Android» и попытаться выяснить вашу проблему – hrskrs

+0

Я проверил его, и я немного запутался ... какая часть кода вам нужна? Манифест? OnCreate()? –

ответ

1

Удалить

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

от всех activities кроме launcher activity

Чтобы понять причину, почему, читать Google Documentation here

удалить:

android:noHistory="true" 

As это приведет к удалению activity из activity stack

удалить:

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
finish(); 

из:

Intent intent = new Intent(Activity_1.this, Activity_2.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
finish(); 
startActivity(intent); 

, чтобы понять причину окончания this answer

+0

Я сделал, но не работает. Я снова попадаю в первую активность. Я прочитал документацию о намерениях, но я ничего не нашел ... –

+0

@ Óscar_Rubio см. Обновленный ответ – hrskrs

+0

Все еще не работает. –

0

Вы должны установить android:clearTaskOnlaunch="false" в андроид манифеста.

+0

Я написал это в своих действиях без запуска, но они работают одинаково = /. –

+0

вы можете добавить блок кода, который содержит намерения и манифест для сообщения? – alian

+0

как @hrskrs сказал, что вам нужно удалить MAIN-фильтры, за исключением Activity_Start. Также вам не нужно устанавливать clearTaskOnLaunch в false. потому что значение по умолчанию false – alian