Android onBackPressed始终返回WebView而不是活动

Android onBackPressed始终返回WebView而不是活动,android,android-fragments,methods,android-webview,back-button,Android,Android Fragments,Methods,Android Webview,Back Button,我的片段上有一个网络视图。但是,我想在onBackPressed上调用一个方法,而不是在我的WebView上调用goBack。当我点击后退按钮时,我的WebView总是返回到上一页,根本不调用我的方法 @Override public void onBackPressed() { if (getSupportFragmentManager().findFragmentByTag("myTag") != null) { if(myWebView.canGoBack(

我的片段上有一个网络视图。但是,我想在onBackPressed上调用一个方法,而不是在我的WebView上调用goBack。当我点击后退按钮时,我的WebView总是返回到上一页,根本不调用我的方法

  @Override
  public void onBackPressed() {
    if (getSupportFragmentManager().findFragmentByTag("myTag") != null) {
        if(myWebView.canGoBack())
           //myWebView.goBack();
        }else {
          super.onBackPressed();
          saveAllData();
        }
    }else{
       super.onBackPressed();
       saveAllData();
    }
 }
我尝试了不同的方法,但不起作用,请参见以下内容: 编辑1:

关于我的碎片1:

 public void backButtonWasPressed() {
      saveAllData();
 }
关于我的活动:

 @Override
 public void onBackPressed() {
      super.onBackPressed();
      FragmentManager fm = getSupportFragmentManager();
      TopicFragment fragment1 = (TopicFragment)fm.findFragmentById(R.id.content_frame);
      fragment1.backButtonWasPressed();
 }
请帮忙


谢谢

这是因为您正在将片段添加到backstack。因此,在提交片段事务之前,请添加以下代码

transaction.addToBackStack(null);
例如:

// Create new fragment and transaction
Fragment newFragment = new ExampleFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();

// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);

// Commit the transaction
transaction.commit();

您应该将saveAllData置于暂停状态,这是一种方式。但是,它在反压状态下是如何工作的呢?我想要的是当用户点击设备上的Backback按钮,然后saveAllData执行。我有addToBackStacknull,即使我没有使用Backback。我的WebView仍然集中,当我点击backbutton时,我的WebView返回到上一页。我有其他代码,请参见上面的编辑1。但仍然不起作用。