package com.lcodecore.twinklingrefreshlayout; import android.annotation.SuppressLint; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.ViewGroup; import android.view.ViewParent; import android.webkit.WebView; import com.lcodecore.tkrefreshlayout.header.progresslayout.ProgressLayout; import com.lcodecore.tkrefreshlayout.RefreshListenerAdapter; import com.lcodecore.tkrefreshlayout.TwinklingRefreshLayout; public class WebActivity extends AppCompatActivity { private WebView mWebView; @SuppressLint("SetJavaScriptEnabled") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_web); TwinklingRefreshLayout refreshLayout = (TwinklingRefreshLayout) findViewById(R.id.refreshLayout); ProgressLayout header = new ProgressLayout(this); refreshLayout.setHeaderView(header); refreshLayout.setFloatRefresh(true); refreshLayout.setOverScrollRefreshShow(false); refreshLayout.setHeaderHeight(140); refreshLayout.setMaxHeadHeight(240); refreshLayout.setOverScrollHeight(200); refreshLayout.setEnableLoadmore(false); header.setColorSchemeResources(R.color.Blue, R.color.Orange, R.color.Yellow, R.color.Green); // header.setColorSchemeColors(0xff4674e7,0xff0ba62c); mWebView = (WebView) findViewById(R.id.webView); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.loadUrl("https://dribbble.com/shots"); refreshLayout.startRefresh(); refreshLayout.setOnRefreshListener(new RefreshListenerAdapter() { @Override public void onRefresh(final TwinklingRefreshLayout refreshLayout) { new Handler().postDelayed(new Runnable() { @Override public void run() { refreshLayout.finishRefreshing(); } }, 4000); } }); } @Override protected void onDestroy() { destroyWebView(); super.onDestroy(); } /** * 解决WebView持有mContext导致的内存泄漏问题 */ private void destroyWebView() { if (mWebView != null) { ViewParent parent = mWebView.getParent(); if (parent != null) ((ViewGroup) parent).removeView(mWebView); mWebView.stopLoading(); mWebView.getSettings().setJavaScriptEnabled(false); mWebView.clearHistory(); mWebView.clearView(); mWebView.removeAllViews(); try { mWebView.destroy(); } catch (Throwable e) { } } } }