English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Эта статья рассказывает о методе имитации функции кнопки HOME в Android-программировании. Поделюсь с вами для вашего рассмотрения, как показано ниже:
Создайте метод, подобный QQ, который при нажатии на кнопку назад не разрушает Activity (т.е. не вызывается Activity.finish(), система не вызывает onDestroy), а подобен нажатию на кнопку Home, позволяя Activity подобно "приостановить" (т.е. вызвать только onPause, onDestroy).
Код следующий:
public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK){ Intent intent = new Intent(Intent.ACTION_MAIN); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // Обратите внимание intent.addCategory(Intent.CATEGORY_HOME); this.startActivity(intent); return true; {} return super.onKeyDown(keyCode, event); {}
Обратите особое внимание:intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Это нужно добавить обязательно, потому что по умолчанию launchMode Activity выполняется в режиме standard. Если этот флаг не добавлен,则会创建新的Activity и поместить его в тот же Task, что и текущий Activity. Вот описание FLAG_ACTIVITY_NEW_TASK: флаг FLAG_ACTIVITY_NEW_TASK
Когда объект Intent, передаваемый в startActivity(), содержит флаг FLAG_ACTIVITY_NEW_TASK, система ищет task, отличный от текущего activity. Если атрибут affinity активити, которую нужно запустить, отличается от атрибута affinity всех текущих task, система создает новый task с этим атрибутом affinity и добавляет активити в новый stack task; в противном случае активити добавляется в stack с тем же атрибутом affinity.
Читатели, интересующиеся дополнительной информацией о Android, могут ознакомиться с нашими статьями: «Введение в разработку Android и продвинутые мануалы», «Советы по отладке и решению проблем Android», «Сборник советов по работе с мультимедийными данными Android (аудио, видео, запись и т.д.)», «Обзор основных компонентов Android», «Советы по работе с View Android», «Советы по работе с layout Android» и «Обзор работы с контроллерами Android».
Надеюсь, что изложенное в этой статье поможет вам в разработке Android-приложений.
Заявление: содержимое статьи взято из Интернета, авторские права принадлежат соответствующему автору, материал предоставлен пользователями Интернета в добровольном порядке, сайт не обладает правами собственности, материал не был отредактирован вручную, и сайт не несет ответственности за связанные с этим法律责任. Если вы обнаружите материалы,涉嫌侵犯版权, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (во время отправки письма, пожалуйста, замените # на @) для сообщения о нарушении,并提供 соответствующие доказательства. При подтверждении факта нарушения, сайт немедленно удаляет涉嫌侵权的内容.