Android - 后退按钮行为

时间:2014-09-15 09:12:48

标签: android android-layout android-activity android-fragments android-ui

我有一个包含2个活动的项目,第一个是“SplashActivity” - 我加载了一些网络数据 - 第二个是MainActivity。

在我的MainActivity中,我有一个片段,在这个片段里面有一个webview。我的第一点是,当用户点击后退按钮时,SplashScreen再次打开。

后退按钮的行为应该如下:

  • 当用户未在我的网页浏览中导航时,请关闭该应用。

  • 当用户在webview中导航时,请使用浏览器的后退历史记录。

我在这里阅读了关于后台的信息:http://developer.android.com/training/implementing-navigation/temporal.html#back-webviews

我根本不明白它应该如何运作,因为我把所有情况都“混合”了。任何人都知道我该怎么做才能解决这个问题?

任何想法或示例代码都会受到赞赏!

1 个答案:

答案 0 :(得分:0)

将Webview wb定义为全局变量。然后尝试一下;

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(event.getAction() == KeyEvent.ACTION_DOWN){
            switch(keyCode)
            {
            case KeyEvent.KEYCODE_BACK:
                if(wb.canGoBack() == true){
                    wb.goBack();
                }else{
                     new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert).setTitle("Application will be closed")
                     .setMessage("Close app?")
                     .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                         @Override
                         public void onClick(DialogInterface dialog, int which) {
                             finish();
                             System.exit(0);
                         }
                     }).setNegativeButton("No", null).show();
                }
                return true;
            }

        }
        return super.onKeyDown(keyCode, event);
    }


}