Кнопка «Назад» запускает заставку

Я разрабатываю приложение Phonegap 2.7.0 + Android.
Проблема заключается в том, что когда я нахожусь на странице index.html своего приложения и нажимаю кнопку «Назад» на устройстве, он запускает заставку и перезапускает приложение.


person amorbytes    schedule 27.06.2013    source источник
comment
На самом деле я новичок в Phonegap и не знаю, как кодировать в Android. Я ищу любое решение со стороны телефонной связи.   -  person amorbytes    schedule 27.06.2013


Ответы (4)


Со стороны Phonegap вы можете прикрепить функцию-обработчик к кнопке возврата, что-то вроде этого:

function exitApp() {
    console.log("Exiting app");
    navigator.app.exitApp();
}

function onPressBack(e) {
    e.preventDefault();
    navigator.notification.confirm("Are you sure you want to quit?", function(result){
        if(result == 2){
            exitApp();
        }
    }, 'Quit My App', 'Cancel,Ok');
}

function deviceready() {
    $(document).bind('backbutton', onPressBack);
}
$(document).bind('deviceready', deviceready);

Если вы используете jQuery Mobile для пейджинга, вы можете отслеживать, отображается ли первая страница и, следовательно, показывать ли диалоговое окно выхода - см. мой ответ на этот вопрос

person DaveAlden    schedule 27.06.2013
comment
Большое спасибо за ваш ответ. - person amorbytes; 27.06.2013
comment
Я использовал ваш код для выхода из приложения. это работает нормально. Я использовал его в home.html, но он предотвращает поведение кнопки «Назад» по умолчанию на всех страницах моего приложения. Это проблема для меня сейчас. - person amorbytes; 28.06.2013
comment
Вы можете добавить монитор или счетчик, чтобы определить, отображается ли первая/главная страница приложения и, следовательно, следует ли при нажатии кнопки «Назад» выйти или просто вернуться назад. Это поведение аналогично моему примеру кнопки возврата jQuery для мобильных устройств - person DaveAlden; 28.06.2013
comment
в моем примере я помещаю код кнопки «Назад» в home.html, но это предотвратит поведение кнопки «Назад» по умолчанию во всем приложении в Android. - person amorbytes; 29.06.2013
comment
Итак, вы говорите, что у вас есть несколько файлов HTML (например, home.html, Anotherpage.html, Differentpage.html), и вы хотите, чтобы кнопка «Назад» закрывалась только в том случае, если текущая страница — home.html? В противном случае, если текущая страница является другой страницей, просто вернуться? - person DaveAlden; 29.06.2013

Вы должны вызвать finish() или this.finish() после вызова метода startActivity(intent).

Что-то вроде этого:

Intent intent = new Intent(currentActivity.this, activityToBeCalled.class) ;
startActivity(intent) ;
finish() ;
person R4chi7    schedule 27.06.2013

Используйте finish() в заставке

person Krrishnaaaa    schedule 27.06.2013

  @Override
  protected void onPause()
  {
    // TODO Auto-generated method stub
    super.onPause();
    finish();
  }

добавьте это событие в свой класс активности всплеска.

Изменить: вы можете добавить события активности, щелкнув правой кнопкой мыши и следуя «Источник-> Методы перезаписи / реализации ...».

http://developer.android.com/images/activity_lifecycle.png

а затем вы должны добавить это событие в свою активность веб-просмотра

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    return super.onKeyDown(keyCode, event);

    // do not finish app use webview controls to go preview webpage.
}
person Mehmet Emre    schedule 27.06.2013