diff options
| -rw-r--r-- | core/java/android/webkit/WebView.java | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index ef4bcc19bf27..7ba93da0d832 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -383,6 +383,39 @@ public class WebView extends AbsoluteLayout } } + private static class OnTrimMemoryListener implements ComponentCallbacks2 { + private static OnTrimMemoryListener sInstance = null; + + static void init(Context c) { + if (sInstance == null) { + sInstance = new OnTrimMemoryListener(c.getApplicationContext()); + } + } + + private OnTrimMemoryListener(Context c) { + c.registerComponentCallbacks(this); + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + // Ignore + } + + @Override + public void onLowMemory() { + // Ignore + } + + @Override + public void onTrimMemory(int level) { + if (DebugFlags.WEB_VIEW) { + Log.d("WebView", "onTrimMemory: " + level); + } + WebView.nativeOnTrimMemory(level); + } + + } + // A final CallbackProxy shared by WebViewCore and BrowserFrame. private final CallbackProxy mCallbackProxy; @@ -1195,6 +1228,8 @@ public class WebView extends AbsoluteLayout } private void init() { + OnTrimMemoryListener.init(getContext()); + setWillNotDraw(false); setFocusable(true); setFocusableInTouchMode(true); |