2009-06-21 8 views
8

У меня есть приложение, которое я хотел бы полностью отключить/закрыть, когда он приостановлен (IE. Когда пользователь нажимает кнопку «Главная», «Конец» и «Назад», я хотел бы, чтобы приложение было закрыт, а не сохраняется в стеке истории).Killing android application on pause

Как это сделать ....?

Спасибо.

ответ

23

Внесите onPause() в свою деятельность и позвоните finish() по вашей деятельности. Однако имейте в виду, что это произойдет при каждой паузе, включая диалоги, входящие вызовы, пользователи, активирующие Notification. Возможно, вам стоит подумать о том, чтобы сделать finish() в onStop(), что по крайней мере решит проблему с диалогом.

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

+0

Спасибо за ответ, я попробую это. Приложение должно работать следующим образом, так как я просто хотел бы, чтобы приложение запускалось, когда пользователь имеет его на переднем плане и оставляя его в фоновом режиме, может привести к чрезмерной потере батареи. – Tom

+1

Вам не придется убивать всю деятельность, хотя в этом случае. Просто отключите все, что вы делаете, это пережевывает время автономной работы и снова активирует его в onStart() или onResume(). – CommonsWare

+0

Когда я вызываю finish() в onPause(), он просто заставляет закрывать. Идеи? – Tom

2

Вы знаете, как у вас есть метод OnCreate() в вашей деятельности, которая выполняет когда вы начинаете. Вам нужно добавить что-то вроде:

@Override 

protected void onPause(){ 
finish(); 

     super.onPause(); 

} 

в своей деятельности, чтобы добавить действия, прежде чем он начнет

в этом случае команда

finish(); 

является то, что вы хотите выполнить, прежде чем ваша деятельность приостанавливается.