2013-08-17 2 views
-3

Привет, я делаю одно приложение здесь У меня есть одна кнопка выхода, когда я нажимаю кнопку, в то время мне нужно выйти из приложения. Я попытался использовать нижеприведенное приложение для кода закрывается, но он все еще работает в taslmanager..but, когда я нажимаю кнопку выхода, я должен закрыть приложение, а также я должен удалить из диспетчера задач, как это возможно. Может ли кто-нибудь предложить мне .. Thankyou.Как быстро выйти из приложения в android

public class MainMenu extends Activity { 
    Button exit; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.mainmenu); 

     exit=(Button)findViewById(R.id.btn1); 
     exit.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
     Intent intent = new Intent(Intent.ACTION_MAIN); 
     intent.addCategory(Intent.CATEGORY_HOME); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

     startActivity(intent); 
      } 
     }); 
    } 
} 
+0

возможно дубликат [Закрытие приложения и убивая его из RAM] (http://stackoverflow.com/questions/18229797/closing-application-and-killing-it-from- ram) – t0mm13b

+0

также, [это] (http://stackoverflow.com/questions/18238276/android-simulate-the-back-button-twice#comment26739948_18238276) – t0mm13b

+2

http://stackoverflow.com/questions/2033914/quitting- a-application-is-that-frowned-upon/2034238 # 2034238 – CommonsWare

ответ

0

Используйте этот флаг:

FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS.

Этот флаг уведомит ОС, чтобы удалить этот app/activity из кеша последних приложений.

intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); 

Вы также можете добавить

android:noHistory="true" 
android:excludeFromRecents="true" 

в файле AndroidManifest для деятельности, где вы не хотите видеть в последних приложениях.

+0

tahnkyou..i дал, что falg также, но все же приложение есть в taskmanager – user2401554

+0

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

+0

Intent intent = new Intent ( Intent.ACTION_MAIN); intent.addCategory (Intent.CATEGORY_HOME); intent.addFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags (Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); startActivity (намерение); – user2401554

0

попробовать это, чтобы выйти из приложения

Intent startMain = new Intent(Intent.ACTION_MAIN); 

startMain.addCategory(Intent.CATEGORY_HOME); 
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(startMain); 
finish(); 
+0

спасибо .. я попробовал tis также приложение закрывается, но все еще работает в диспетчере задач – user2401554

+0

попробуйте также android.os.Process.killProcess (android.os.Process.myPid()); – Aravin

0

Пожалуйста, подумайте действительно трудно о том, если вам нужно, чтобы убить приложение: почему бы не позволить фигуру OS, где и когда, чтобы освободить ресурсы?

В противном случае, если вы абсолютно уверены, что на самом деле, использовать

отделка(); В качестве реакции на комментарий @dave appleton: Первое, что прочитали большой комбо-ответ на вопрос/ответ @gabriel: Выход из приложения - нахмурился?

  • Теперь предполагая, что мы имеем, что вопрос здесь еще есть ответ, в том, что код вам нужно, если вы делаете что-то с отказа от курения является отделка(). Очевидно, что вы можете иметь более одного вида деятельности и т. Д., , но это не главное. Позволяет запускать некоторые из сценариев использования

  • Вы хотите, чтобы пользователь мог бросить все из-за использования памяти и «не работает в фоновом режиме? Doubtfull. Пусть пользователь остановить определенные деятельность в фоновом режиме, но пусть ОС убьет любые ненужные
    ресурсов. Вы хотите, чтобы пользователь не переходил к предыдущему действию вашего приложения ? Ну, либо настройте его так, чтобы он этого не сделал, либо вам нужен дополнительный
    . Если в большинстве случаев назад = предыдущие действия,
    не хотел бы просто нажать на дом, если он что-то хочет сделать
    еще? Если вам нужно что-то вроде сброса, вы можете узнать, если/how/etc
    ваше приложение было уволено, и если ваша активность снова становится фокусом, вы можете принять решение об этом, показывая новый экран вместо перезапуска , где вы были. Поэтому, в конце концов, конечно, финиш() не убивает
    everthing, но это все еще инструмент, который вам нужен, я думаю.Если есть
    UseCase для «убить всех видов деятельности», я не нашел еще

+0

да, у меня есть 2 действия .. в 2 действиях у меня есть кнопка выхода, если я нажимаю кнопку выхода в 2-х действиях, значит, мне нужно выполнить первую активность, я нажимаю exit btn в первой активности. Мне нужно закрыть все приложение – user2401554

+0

, если вы хотите выйти из своего одно действие затем просто напишите First_activity_context_finish(); и moveTaskToBack (true); @ user2401554 – Andrain

+0

noo..когда я нажимаю кнопку выхода первого класса, мне нужно закрыть apllication.and удалить приложение из диспетчера задач – user2401554

0

Android не позволяет напрямую выйти из app.you просто удалить текущую activty из стека, прежде чем перейти к любой новой деятельности.

класс первый расширяет активность { OnCreate() {

Намерение я = новый Намерение (getappcontext(), nextactivity);

stratactivity (i);

первый.this.finish();

}

}

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