2015-07-06 2 views
1

Каждый раз, когда нажимается значок приложения на главном экране, я хочу, чтобы приложение запустило мой FirstActivity.java. Проблема в том, что, скажем, я прошел через мое приложение и находится в ThirdActivity.java, и я нажал на дом Button и перейдите к другим приложениям. Опять же, когда я нажимаю значок приложения на главном экране, мой Application начинается с ThirdActivity.java. Я хочу, чтобы он начинался с FirstActivity.java.значок приложения при щелчке на главном экране

Я использовал clearTaskOnLaunch="true" в манифесте для моего FirstActivity.java, а также проверял с помощью android:finishOnTaskLaunch ="true" во всех моих других действиях, но проблема все еще там. Как я могу это решить?

+0

можно реализовать двумя способами: 1) либо закончить текущую деятельность всякий раз, когда ваша вторая и третья деятельность приостановлена ​​(не рекомендуется). 2) Вы можете использовать класс Application, где всякий раз, когда ваше приложение запускает вашу первую активность. –

+0

@himanshu munjal Спасибо! Но я не могу закончить свою деятельность каждый раз, когда я останавливаюсь. У пользователя есть возможность выбрать приложение снова из раздела фоновых приложений (раздел диспетчера задач). Если он это сделает, я хочу, чтобы он начинался с того места, где он/она ушел. только если они нажмут на значок приложения, если приложение начнет с начала.Можете ли вы объяснить второй ответ (ou может использовать класс приложения, где всякий раз, когда ваше приложение запускает вашу первую активность)? – Nabil

+0

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

ответ

1

Все, что мне нужно сделать, это объявить андроид: launchMode = "singleTask" в манифесте для моего FirstActivity.java "только". Делая это, каждый раз, когда пользователь выбирает приложение, щелкнув значок приложения на главном экране, приложение начнется с FirstActivity.java

Скажите, что пользователь перешел через мое приложение и находится в ThirdActivity.java и щелкнул по нему Кнопка. У пользователя есть возможность выбрать приложение снова из раздела фоновых приложений (раздел диспетчера задач). Если он это сделает, он начнется с того места, где он/она остался (ThirdActivity.java). Только если они нажимают на значок приложения будет запустить приложение из FirstActivity.java

0

вы должны закончить вам текущую деятельность в то время, когда вы запускаете намерение для новой деятельности, есть способ сделать это finish();

+0

Спасибо! Но я не могу закончить свою деятельность каждый раз, когда я останавливаюсь. У пользователя есть возможность выбрать приложение снова из раздела фоновых приложений (раздел диспетчера задач). Если он это сделает, я хочу, чтобы он начинался с того места, где он/она ушел. только если они нажмут на значок приложения, если приложение начнет с начала. – Nabil

0

В вашей OnCreate вы просто должны начать свою деятельность с помощью Intent

в манифесте вы должны предоставить имя атрибута для применения тега

<application 
     android:allowBackup="true" 

     android:icon="@drawable/app_logo" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" 

     android:name=".class name which extends Application" 

     > 

Здесь вы можете увидеть подробную информацию о том, как использовать класс приложения: http://www.intertech.com/Blog/androids-application-class/

http://developer.android.com/reference/android/app/Application.html

http://androidexample.com/Global_Variable_Or_Application_Context_Variable_-_Android_Example/index.php?view=article_discription&aid=114&aaid=136

+0

Спасибо ... Я проверю это и вернусь – Nabil

+0

Извините! Решение не работает для меня ... Я создал класс приложения, как показано в примере, и вызвал его в моем FirstActivity.java ... Дал имя приложения в манифесте, как показано вами .. но проблема все еще существует .. – Nabil

0

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

Intent intent = new Intent(AnyActivity.this,FirstActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
startActivity(intent); 
finish(); 
0

вы можете использовать moveTaskToBack(true) при нажатии на homebutton и начать действие, которое необходимо.

+0

Спасибо. Я уже нашел решение для этого. Я также попробую это и вернусь к вам .. – Nabil

0

Я решил проблему, добавив все три метки Android: launchMode = «singleTask» андроида: clearTaskOnLaunch = «истинный» андроида: finishOnTaskLaunch =» правда» манифеста экрана активности всплеск может помочь некоторым один:

<activity 
     android:name=".SplashscreenActivity" 
     android:configChanges="orientation|keyboardHidden|screenSize" 
     android:label="@string/app_name" 
     android:launchMode="singleTask" 
     android:clearTaskOnLaunch="true" 
     android:finishOnTaskLaunch ="true" 
     android:screenOrientation="portrait" 
     android:theme="@style/AppThemeForAppCompact"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
Смежные вопросы