Android clear webview thread, free memory, avoid OutOfMemoryError

前端 未结 3 795
半阙折子戏
半阙折子戏 2021-02-14 08:31

I am displaying a fairly large image in a webview so that the pinch-to-zoom functions and other conveniences for viewing are already available.

It displays correctly the

3条回答
  •  一整个雨季
    2021-02-14 09:20

    Efficient way ever:

    WebViewActivity.java

    public class WebViewActivity extends AppCompatActivity {
    
        private WebView mWebView;
        private RelativeLayout mWebViewParent;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_web_view);
            Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
    
            mWebViewParent = (RelativeLayout) findViewById(R.id.layoutWebViewParent);
            mWebView = (WebView)findViewById(R.id.webView);
    
            // Other stuff
    
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            destroyWebView();
        }
    
        private void destroyWebView() {
            mWebViewParent.removeAllViews();
            if(mWebView != null) {
                mWebView.clearHistory();
                mWebView.clearCache(true);
                mWebView.loadUrl("about:blank");
                mWebView.freeMemory();
                mWebView.pauseTimers();
                mWebView = null;
            }
            android.os.Process.killProcess(android.os.Process.myPid());
        }
    }
    

    activity_web_view.xml

    
    
        
    
        
    
    
    

    AndroidManifest.xml

    
    
    

    Hope this will help you.

提交回复
热议问题