关于 public 静态 WebView 的问题 Java

Questions about public static WebView in Java

我的 MainActivity.[=26 中有一个名为 webViewpublic static WebView =] 我可以在 MainActivity 中处理它,使用一些正常的操作,如 webView.loadUrl()

public static WebView webView;

webView.loadUrl();

现在我想在其他Activity中使用这个静态对象,问题是:我什至无法获取它。

Log.i("MYTAG","work!");
Log.i("MYTAG",MainActivity.webView.getUrl());
Log.i("MYTAG","reload");

这里我打印了这个 webView 的 url,但是它只执行到第一步,它只打印“work”并跳过这些后续步骤。同样,它不能执行命令“webView.loadUrl()”。

您可以通过在 class 中创建一个 public 静态 WebView 对象并尝试在其他 class.
中使用它来简单地重复此操作 如果能给我出出主意,万分感谢!

您永远不应该拥有静态视图。视图链接到 Activity 的单个实例。尝试在另一个 activity 中显示它不仅不起作用,还会导致巨大的内存泄漏,因为它在其中引用了其原始 activity。

感谢 Gabe Sechan,我有了新的想法并成功地实现了它。 另一个activity不能直接改变我的MainActivity中的webView,但是它的改变可以通过广播发布。所以我最后在 MainActivity 中使用一个接收器来获取消息并更改 webView。