当显示一个(仅)由Web视图组成的活动时,我遇到了这个奇怪的问题。
我第一次通过单击活动A中的某项来启动此活动B,则B已正确加载并正常运行。我按下返回按钮,返回到A,然后单击相同的按钮进入B,但我的Web视图未显示任何内容。调试了无数次,似乎没有什么异常。堆栈跟踪日志中也没有崩溃... wway的此问题始终在调试模式下发生,并且仅在运行模式下有时发生。
这是活动的代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spin);
myItem = (Item) getIntent().getSerializableExtra("Item");
initView();
initHandlers();
}
private void initView()
{
webView = findViewById(R.id.webview_spin);
//TODO : webViewClient vs webChromeClient ?
webView.setWebViewClient(new WebViewClient());
webView.setWebChromeClient(new WebChromeClient());
webView.getSettings().setJavaScriptEnabled(true);
String json = new Gson().toJson(myItem);
webView.loadUrl("file:///android_asset/item.html?item="+json);
}
private void initHandlers()
{
OrientationEventListener orientationEventListener = new OrientationEventListener(this) {
@Override
public void onOrientationChanged(int orientation) {
webView.reload();
}
};
orientationEventListener.enable();
}
仅供参考,设置定向侦听器之前会发生此问题。
答案 0 :(得分:0)
似乎WebView的渲染过程以某种方式失败。您可以将创建的WebViewClient存储在变量上,并检查其方法onRenderProcessGone()的结果,以检查它是否在第二次加载活动时正在呈现。这里有所有的WebViewClient方法:https://developer.android.com/reference/android/webkit/WebViewClient