0

我正在开发 Phonegap 2.7.0 + Android 应用程序。
问题是当我在我的应用程序的 index.html 页面上并按下设备的后退按钮时,它会启动启动画面并重新启动应用程序。

4

4 回答 4

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 进行分页,您可以跟踪它是否是显示的第一页,因此是否显示退出对话框 - 请参阅我对这个问题的回答

于 2013-06-27T06:38:04.373 回答
2

您应该调用finish()this.finish()调用该startActivity(intent)方法之后。

像这样的东西:

Intent intent = new Intent(currentActivity.this, activityToBeCalled.class) ;
startActivity(intent) ;
finish() ;
于 2013-06-27T06:28:43.563 回答
1

finish()在启动屏幕活动中使用

于 2013-06-27T06:25:51.787 回答
1
  @Override
  protected void onPause()
  {
    // TODO Auto-generated method stub
    super.onPause();
    finish();
  }

将此事件添加到您的启动活动类。

编辑:您可以通过右键单击并遵循“Source->Overwrite/Implements Methods...”来添加活动事件。

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

然后您应该将此事件添加到您的 webview 活动中

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

    // do not finish app use webview controls to go preview webpage.
}
于 2013-06-27T06:28:10.503 回答