1

我有一个带有 3 个操作栏选项卡的活动。每个选项卡都包含一个 webview,它在 Fragment oncreate() 处加载一个 URL。一切正常,但是如果我快速切换选项卡,onpagefinished 会在选项卡更改后出现,因此当调用片段消失时,会导致 NullPointerException。有没有办法防止这种情况?

我在我的片段中尝试过:

public void onDestroy() {
        super.onDestroy();
        try {
            myWebView.stopLoading();
        } catch (Exception e) {
        }
        try {
            myWebView.clearView();
        } catch (Exception e) {
        }

在我的标签监听器中:

onTabSelected(Tab tab, FragmentTransaction ft) {
        // StartActivity.mViewPager.setCurrentItem(tab.getPosition());
        if (FinishedLoading == true){
        ft.replace(R.id.fragment_container, fragment);
        }
        }

这两个选项都不会阻止 APP 崩溃。

我收到的错误:

java.lang.NullPointerException
at com.***.Fragment1$MyWebViewClient.onPageFinished(Fragment1.java:233)
at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:389)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4898)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
at dalvik.system.NativeStart.main(Native Method)
4

1 回答 1

1

我也面临这个问题。如果你还没有解决它,也许你想尝试onPause在你的片段中实现这样的:

@Override
public void onPause() {

    if (webview.isShown() == false) {
        webview.stopLoading();
    }
    super.onPause();
}

@Override
public void onResume() {
    super.onResume();
}

webview你的网络视图在哪里

于 2013-07-30T04:25:46.790 回答