应用程序重启后的Android空白WebView
我的网络视图有问题。当我用Eclispe启动应用程序时,它在我的设备上运行良好(三星Galaxy S2,Android 4.1.2/API 16)。它加载我通过webview.loadUrl(“我的url”)传递的网站;还可以绘制一些javascript警报等。 当我离开应用程序并重新启动它时,它只会再次工作。当我第二次重新启动应用程序时,它不会加载任何URL。 我猜它与savedInstanceState有关,但即使我在活动开始时将该Bundle设置为null,它也不会重新加载URL应用程序重启后的Android空白WebView,android,webview,application-restart,Android,Webview,Application Restart,我的网络视图有问题。当我用Eclispe启动应用程序时,它在我的设备上运行良好(三星Galaxy S2,Android 4.1.2/API 16)。它加载我通过webview.loadUrl(“我的url”)传递的网站;还可以绘制一些javascript警报等。 当我离开应用程序并重新启动它时,它只会再次工作。当我第二次重新启动应用程序时,它不会加载任何URL。 我猜它与savedInstanceState有关,但即使我在活动开始时将该Bundle设置为null,它也不会重新加载URL prot
protected void onCreate(Bundle savedInstanceState) {
savedInstanceState=null;
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
browser = (WebView) findViewById(R.id.browser);
...
browser.loadUrl(url);
}
我也试着移除所有的饼干
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookie();
仍然有相同的错误。我已经阅读了很多关于Android中WebView的已解决的帖子和问题,但没有任何帮助。有人知道吗?我很困惑
整体一次创建方法:
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
savedInstanceState=null;
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
browser = (WebView) findViewById(R.id.browser);
// if (savedInstanceState != null) {
// browser.restoreState(savedInstanceState);
// }
/* JavaScript must be enabled if you want it to work, obviously */
browser.getSettings().setJavaScriptEnabled(true);
final Context myApp = this;
final Communicator c = new Communicator();
/* WebChromeClient must be set BEFORE calling loadUrl! */
browser.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message,
final android.webkit.JsResult result) {
Log.d(TAG, "onJsAlert");
try {
JSONObject json = new JSONObject(message);
if (json.has("func")) {
if (json.getString("func").equals("onUserInfos")) {
c.onUserInfos(json);
Log.d(TAG, "JSON verarbeitet");
}
}
return true;
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// TODO
Log.v(TAG, "JavaScript Alert empfangen");
new AlertDialog.Builder(myApp)
.setTitle("javaScript dialog")
.setMessage(message)
.setPositiveButton(android.R.string.ok,
new AlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
result.confirm();
}
}).setCancelable(false).create().show();
return false;
};
});
// Reset all Cookies
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookie();
/* load a web page which uses the alert() function */
String url = c.getGuiURL();
browser.loadUrl(url);
}
当您离开应用程序时,流程可能会继续运行。因此,当您返回应用程序时,将调用onResume方法,而不是onCreate方法 有关活动生命周期的更多信息,请在android开发者网站上查看此页面