如何使用后退键清除android片段中的历史记录?

时间:2013-06-03 11:17:19

标签: android android-layout android-intent android-webview

我正在使用一个片段,其中我使用了backview事件进行webview,但是当我点击它时它仍会加载历史记录。如何克服碎片。

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if(event.getAction() == KeyEvent.ACTION_DOWN){ 
        switch(keyCode) 
        { 
        case KeyEvent.KEYCODE_BACK: 
            if(mWebView.canGoBack() == true){ 
                mWebView.goBack(); 
            }else{ 
                finish(); 
            } 
            return true; 
        } 

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

但仍加载以前的历史记录。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

Aa extends Fragment
{
   static  WebView w;
   View v;

   private Handler handler = new Handler(){

   @Override
   public void handleMessage(Message message) {

    switch (message.what) {
        case 1:{
            webViewGoBack();
        }break;
    }
}

private void webViewGoBack() {
    w.goBack();

    // TODO Auto-generated method stub

}
};

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle    savedInstanceState){

   v = inflater.inflate(R.layout.webs, container, false);

   w=(WebView)v.findViewById(R.id.webView1);

   }

   w.setOnKeyListener(new OnKeyListener(){

  @Override

  public boolean onKey(View v, int keyCode, KeyEvent event) {

        // TODO Auto-generated method stub
  if((keyCode==KeyEvent.KEYCODE_BACK)&& w.canGoBack())

        {

            handler.sendEmptyMessage(1);

            return true;

        }
        return false;
    }

  });