管灌系统巡查员智能手机App
zuoxiao
2025-01-14 5f4c3669ddd8fe27449b04a4b9db12b2ca4b3688
app/src/main/java/com/dayu/pipirrapp/observer/MapFragmenObserver.java
@@ -1,5 +1,9 @@
package com.dayu.pipirrapp.observer;
import android.util.Log;
import android.view.ViewGroup;
import android.webkit.WebView;
import androidx.annotation.NonNull;
import androidx.lifecycle.DefaultLifecycleObserver;
import androidx.lifecycle.LifecycleOwner;
@@ -11,13 +15,50 @@
 * 备注:地图页相关逻辑
 */
public class MapFragmenObserver implements DefaultLifecycleObserver {
    static String TAG = "MapFragmen";
    WebView mWebView;
    public void setmWebView(WebView webView) {
        mWebView = webView;
    }
    @Override
    public void onCreate(@NonNull LifecycleOwner owner) {
        DefaultLifecycleObserver.super.onCreate(owner);
        Log.i(TAG, "onCreate");
    }
    @Override
    public void onResume(@NonNull LifecycleOwner owner) {
        DefaultLifecycleObserver.super.onResume(owner);
        Log.i(TAG, "onResume");
        if (mWebView != null) {
            mWebView.onResume();
        }
        // 恢复 WebView,能正常执行网页的响应
    }
    @Override
    public void onPause(@NonNull LifecycleOwner owner) {
        DefaultLifecycleObserver.super.onPause(owner);
        Log.i(TAG, "onPause");
        if (mWebView != null) {
            mWebView.onPause(); // 通过 onPause 动作通知内核暂停所有的动作,如 DOM 的解析、plugin 的执行、JavaScript 执行等
        }
    }
    @Override
    public void onDestroy(@NonNull LifecycleOwner owner) {
        DefaultLifecycleObserver.super.onDestroy(owner);
        Log.i(TAG, "onDestroy>>>>>>>>>>>>>>>>>>>>>>>>>>>");
        if (mWebView != null) {
            ((ViewGroup) mWebView.getParent()).removeView(mWebView);
            mWebView.destroy(); // 当 Activity 要 destroy 时,应先将 WebView 移除,再 destroy 掉
        }
    }
}