我试图获得对活动片段的实例的引用,但我不确定如果我这样做的方式最好,或者它会导致内存泄漏。在JavaScript中,像这样做会保留Object的一个实例并可能导致问题,但我不确定Java会如何处理GC。从WebView中获取片段的实例
以下的工作,但有没有更好的方法?
public class WebframeFragment extends Fragment {
...
String baseUrl;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
Fragment self = this; // will this cause trouble?
this.baseUrl = getActivity().getIntent().getStringExtra(Extra.REQUEST_URL);
webActivity.setWebView(webView);
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (urlType(url) == urlType(self.baseUrl)){
return false;
}
}
}
}
...
}
可能会使用Fragment self = this.getContext();你会得到更好的结果 – HCarrasko
虽然我需要访问'this.baseUrl'。 –