我有一个小应用程序,仅包含一个 WebView 。我正在使用 url 加载 webview。但是当我的应用程序离开后台并返回时,webview 正在重新加载,对我来说它不应该发生。当应用程序在 iOS 和 Android 中进入后台时如何停止 webview 重新加载。
注意: safari(iOS) 和 chrome(Android) 都使用相同的 url 处理该事件,即使它们已进入后台。他们没有重新加载 WebView 或数据。
这是我的代码,我还需要添加什么吗:
iOS:
NSURL* url = [NSURL URLWithString:ip];
[webView loadRequest:[NSURLRequest requestWithURL:url]];
安卓:
String url = "http://"+ip+":8081";
webView.loadUrl(url);
最佳答案
App重新加载有多种原因。
安卓
如果每当 Activity
进入 stop
状态并且设备内存小于进程被杀死,内存被分配给高优先级的应用程序。返回时它从 oncreate()
方法恢复,这里不仅重新加载了 webView
,而且重新加载了整个应用。
如果您的 activity
处于 stop
状态并且用户对其进行导航,那么它将从 onRestart()
开始,它不会触及onCreate
但会通过 onStart()
,您的应用不会重启,但您放入 onstart
和 onResume
的内容.
基本上,您必须为此了解 Activity 状态,这是一个链接。 https://developer.android.com/reference/android/app/Activity.html
iOS: 同样的事情发生在 iOS 上,但以不同的方式发生,而且很少发生,但我从来没有遇到过这个问题,因为与 Android 设备相比,设备内存会很好。
在 ViewDidLoad()
中加载您的 webView 而不要在 ViewDidAppear()
或 ViewWillAppear()
中加载它,因为后两种方法将被频繁调用,第一个在应用程序加载时被调用。
注意:您的 Webview 不会由您的代码自动重新加载,它的重新加载是由于上述任何一种原因。
希望本文档对您有所帮助。
关于android - 当应用程序离开后台并返回 iOS 和 Android 时,WebView 正在重新加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38393731/