2016-03-07 41 views
0

我不确定标题是否使问题变得清晰和正确。在这里发生了什么让我困惑。为什么我按下后退按钮转到另一个活动后代码仍在运行?

在该项目中,FlickrViewActivity是启动活动,而FlickrPageFragment是FlickrPageActivity中包含的一个片段。 FlickrPageFragment只包含一个WebView。核心代码是这样的: enter image description here

有时,当装载任务未完成,然后我按后退按钮到另一个活动,然后应用程序被停止,因为被跟随的错误: enter image description here

看到?据悉第67行是空指针!这是否意味着当我按下后退按钮时代码仍在运行?

这种情况并不总是会发生。我只是在第一次看到WebView正在加载对象。

为什么?我该如何解决这个问题?


后,我把核心代码中onActivityCreated()方法,但问题还是发生了,这里是修改后的代码:

@Override 
    public void onActivityCreated(@Nullable Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    mWebView.setWebChromeClient(new WebChromeClient() { 
     public void onProgressChanged(WebView webView, int newProgress) { 
      if (newProgress == 100) { 
       mProgressBar.setVisibility(View.GONE); 
      } else { 
       mProgressBar.setVisibility(View.VISIBLE); 
       mProgressBar.setProgress(newProgress); 
      } 
     } 

     public void onReceivedTitle(WebView webView, String title) { 
      AppCompatActivity activity = (AppCompatActivity) getActivity(); 
      activity.getSupportActionBar().setSubtitle(title); 
     } 
    }); 
} 

回答

0

因为你onActivityCreated()之前按后退按钮你得到这个错误方法已完成,这就是为什么当您致电getActivity()时,您会得到空值。因此,请将此代码放入您的onActivityCreated()方法中,并且如果您要访问context,onCreateView(),请使用getContext()

+0

对不起,我将代码移动到onActivityCreated(),但仍然不起作用。 – wuxue

+0

当你每次得到空异常? –

+0

是的,相同的地方,空指针异常。它是有线的。 – wuxue