gpt4 book ai didi

android - 泄露的 IntentReceiver android.widget.ZoomButtonsController?

转载 作者:行者123 更新时间:2023-11-29 18:24:06 27 4
gpt4 key购买 nike

我希望我的应用程序在用户触摸 GLSurfaceView 时在 GLSurfaceView 上显示 ZoomButtonsController。我的 Activity 构造函数如下所示:

_zoomButtonsController = new ZoomButtonsController(_surface);
_zoomButtonsController.setAutoDismissed(true);
_zoomButtonsController.setOnZoomListener(_zoomListener); // Set listener

然后我覆盖 onTouchEvent() 以在用户生成 ACTION_MOVE 事件时使 ZoomButtonsController 可见:

/** Called when user generates touch event */
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
// Does this somehow register an IntentListener???
if (_zoomButtonsController != null) {
_zoomButtonsController.setVisible(true);
}

在我退出之前,该应用程序似乎一直在工作,此时我得到:

D/Solaris (22616): onDestroy() E/WindowManager(22616): Activity com.tomoreilly.solarisalpha.SolarisAlpha has leaked window android.widget.ZoomButtonsController$Container@4495c640 that was originally added here

堆栈跟踪是指 onTouchEvent 中调用 _zoomButtonsController.setVisible(true) 的行。

这是为什么?为什么将缩放按钮 Controller 设置为可见也会将其注册为 Intent 监听器?我到底要怎么取消注册呢?我是否真的使用了正确的方法 - 即我应该从 Activity.onTouchEvent() 中调用 ZoomButtonsController.setVisible(true) 吗?

谢谢,汤姆

最佳答案

为什么要提到 IntentReceivers?日志说你泄漏了一个窗口。您必须确保在退出时将缩放 Controller 的可见性设置为 false 以销毁关联的窗口。

关于android - 泄露的 IntentReceiver android.widget.ZoomButtonsController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3437702/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com