我有一个包含2个活动的项目,第一个是“SplashActivity” - 我加载了一些网络数据 - 第二个是MainActivity。
在我的MainActivity中,我有一个片段,在这个片段里面有一个webview。我的第一点是,当用户点击后退按钮时,SplashScreen再次打开。
后退按钮的行为应该如下:
当用户未在我的网页浏览中导航时,请关闭该应用。
当用户在webview中导航时,请使用浏览器的后退历史记录。
我在这里阅读了关于后台的信息:http://developer.android.com/training/implementing-navigation/temporal.html#back-webviews
我根本不明白它应该如何运作,因为我把所有情况都“混合”了。任何人都知道我该怎么做才能解决这个问题?
任何想法或示例代码都会受到赞赏!
答案 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);
}
}