2010-11-23 4 views
1

У меня есть кнопка, чтобы закрыть мое приложение с помощью этого кода:Как я могу закрыть/закрыть кнопку в своем приложении?

finish();

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

, как я могу сделать реальная кнопка выхода/закрытия?

я судимый с этим:

Intent intent = new Intent(Intent.ACTION_MAIN); 
intent.addCategory(Intent.CATEGORY_HOME); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 

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

+2

Не делайте этого. Для чего нужно закрыть приложение? Для этого и предназначена кнопка для дома. – Falmarri 2010-11-23 21:00:43

+0

Если ваше приложение имеет или нуждается в кнопке закрытия, это плохо разработанное приложение для Android. – adamp 2010-11-23 22:36:40

ответ

1

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

Кстати, я пишу это из памяти. имена функций могут быть неточными.

Надеюсь, что это поможет.

p.s. перечитайте свои требования. вы всегда можете остановить финишную петлю при первом действии.

+0

, можете ли вы объяснить мне немного больше, как это сделать? возможно, с примерами кода? я не могу понять вас – NullPointerException 2010-11-23 21:48:06

2

По умолчанию дизайн Android не способствует удалению приложения, а позволяет ОС управлять им. Вы можете вызвать Начальное приложение, это соответствующее Намерение:

Intent intent = new Intent(Intent.ACTION_MAIN); 
intent.addCategory(Intent.CATEGORY_HOME); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 
+1

это не работает, потому что, когда я возвращаюсь в свое приложение, приложение приходит в последнем открывшемся окне, а не в первом окне приложения, как я могу это сделать? Мне нужно, чтобы при открытии моего приложения он начинался в первом окне моего приложения – NullPointerException 2010-11-23 21:37:51

0

finish() закрывает деятельность (это то, что вы называете намерение, но это не правильно), а не приложение. Заявление не может быть завершено вообще (убиты только такие убитые убийцы задач). Вы должны разработать свой activity stack таким образом, чтобы он соответствовал вашим потребностям. Возможно, вам стоит взглянуть на примеры переупорядочения стека в ApiDemos.

1

Я хотел бы сделать это следующим образом:

  • Я бы определил свою первоначальную активность (т.е. MainMenu) с режимом запусков SingleTop
  • Я бы затем вызвать мою MainMenu от деятельности, которая собирается закройте приложение.

    startActivity (новый Intent (это, MainMenu.class) .addFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP) .putExtra ("closeProgram", правда);

  • Затем отменяют в onNewIntent в деятельности MainMenu; проверить дополнительный логический из «closeProgram», если значение истинно, то сделать отделку();

не пробовал, но я думаю, что он должен работать.

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