使用地图我有一个活动,当没有可用的连接时启动,并使用离线地图(MapQuest).活动运行正常,显示地图,以及所有叠加,标记等.当用户点击其中一个标记信息窗口时,将启动另一个活动,此时我在日志中收到一堆红色错误消息,但应用程序不会崩溃.这些消息(init在标题中)似乎谈论了ZoomButtons和触摸事件.对于代码中的ZoomButtons或触摸事件(多点触控),只有两行:
map.setBuiltInZoomControls(true);
map.setMultiTouchControls(true);
Run Code Online (Sandbox Code Playgroud)
而不是任何对话......
如果我写:
map.setBuiltInZoomControls(假); map.setMultiTouchControls(假);
红色错误消息消失但当然用户无法以任何方式放大或缩小...
由于错误(带有"true"参数)仅在启动另一个活动时发生,我认为我必须在pause()上添加一些内容,即:
onPause(){
map.setBuiltInZoomControls(false);
map.setMultiTouchControls(false);
super.OnPause();
}
Run Code Online (Sandbox Code Playgroud)
----但这样做并没有改变任何东西......任何提示??? - 提前致谢!
Sim*_*lin 15
将此添加到您的活动中:
@Override
public void finish() {
ViewGroup view = (ViewGroup) getWindow().getDecorView();
view.removeAllViews();
super.finish();
}
Run Code Online (Sandbox Code Playgroud)
我有完全相同的问题...感谢你指出它是由(可能)当缩放控件仍然可见时引起的.我测试了它,这是正确的.当我按下显示变焦控制的后退按钮时,它会显示泄漏错误,如果我等到控件逐渐消失(它们在您停止滚动后执行),则没有泄漏错误.
在WebSettings中进行的一项研究提供了一种不显示缩放控件的方法,这意味着在您想要按下后退按钮的任何时候它都不会泄漏.它仍然可以通过捏合效果进行缩放.使用此方法的唯一缺点是您的控件不会显示.但对我来说,这是值得的,因为大多数用户都知道所有应用程序的缩放缩放.
这是我用过的:
// make sure your pinch zoom is enabled
webView.getSettings().setBuiltInZoomControls(true);
// don't show the zoom controls
webView.getSettings().setDisplayZoomControls(false);
Run Code Online (Sandbox Code Playgroud)