我正在製作一個應用程序,爲主要內容加載webview。我有一個菜單inflater,將提供幾個鏈接。我使用菜單inflater作爲警告標籤。 「你確定要離開這個頁面嗎?」但是,如果用戶不想離開這個頁面,我希望他們能夠按下後退按鈕返回到webview。我遇到的問題是後退按鈕重新啓動活動並重新加載網頁。停止Android後退按鈕從重新啓動活動
我試着將一個bundle中的savedContentState發送到菜單類,但我不知道如何將它應用到我的webview時,我按下後退按鈕。
主類:
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
web.restoreState(savedInstanceState);
Intent in = new Intent(getApplicationContext(), DBZWiki.class);
in.putExtras(savedInstanceState);
startActivity(in);
}
public boolean onCreateOptionsMenu(android.view.Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.dbz_menu, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.dbzAbout:
break;
case R.id.dbzDonate:
break;
case R.id.dbzWiki:
Intent a = new Intent("com.example.thenewboston.DBZWIKI");
startActivity(a);
break;
}
return false;
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
web.loadUrl("file:///android_asset/infAppPaused.html");
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
web.loadUrl(stream);
}
}
維基Menu類:
public class DBZWiki extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.dbz_wiki);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK) {
Intent in = getIntent();
startActivity(in);
}
return true;
}
如果你通過getIntent()獲得了意圖並啓動它,那麼你是否重新啓動你的意圖,你想避免的確切事情? – Gjordis
我只是在鬼混,實際上我不知道該怎麼做。 – liyicky
如果根本不使用onKeyDown方法會發生什麼? – Gjordis