Android View.getContext返回null,为什么?
我使用带有javascript界面的WebView,有时在WebView上调用Android View.getContext返回null,为什么?,android,android-view,android-lifecycle,Android,Android View,Android Lifecycle,我使用带有javascript界面的WebView,有时在WebView上调用loadUrl时,mWebView.getContext()returnnull 视图怎么可能没有上下文?为什么? 没有上下文的视图是否仍在使用或可重用 当我的观点没有背景时,我该怎么办 最重要的,如果视图没有上下文,是否执行mWebView.post(新的Runnable(){… 这个代码相关吗 if (Looper.getMainLooper().getThread() == Thread.currentThrea
loadUrl
时,mWebView.getContext()
returnnull
mWebView.post(新的Runnable(){…
if (Looper.getMainLooper().getThread() == Thread.currentThread()) {
mWebView.loadUrl("javascript:...");
} else {
mWebView.post(new Runnable() {
public void run() {
mWebView.loadUrl("javascript:...");
}
});
}
视图中出现空上下文的2个常见原因:
- 您试图在异步(处理程序、网络调用)调用的回调中获取上下文,但由于用户的另一个操作(例如:pressed back),活动/片段已消失。因此,视图已分离,不再具有上下文
- 您的活动和视图层次结构的某个位置出现内存泄漏,并且有两个或多个实例。然后,您不再引用的实例中发生了某些情况,但视图已丢失到其上下文的链接
请记住,处理程序的生命周期与活动无关。因此,当您的活动/片段暂停时,您应该清除消息队列和可运行项如果发生这种情况主要是因为承载小部件的活动/片段正在关闭感谢您的回答,您能检查问题4和5吗?如果我想做些什么呢在webview中输入墨迹,但
mWebView.getContext()
返回null,然后片段被恢复,操作未被触发,导致页面中出现奇怪的状态如果视图没有上下文,那么由于某些原因它不在屏幕上。这是您需要查找的“某些原因”,webview将正常工作