当 LifeCycleOwner 处于 onDestroy 时,接近传感器保持注册状态

问题描述

我有一个项目,您可以在其中拨打电话。调用发生在 CallActivity 中,它是 LifecycleOwner,而另一个处理传感器的类是 LifecycleObserver。

用户 A 呼叫用户 B 时,接近传感器被注册并且屏幕关闭。如果用户 A 结束通话并且用户 B 的耳朵仍然靠近设备,则在 CallActivity 处于 onDestroy 时,传感器仍会注册

因此,传感器会在不应该靠近手机的地方使用靠近手机的手势关闭屏幕。 如果用户 B 在 CallActivity 仍然存在的那一刻从他的耳朵中取出手机,则传感器成功注销并且应用程序正常运行。

我应该如何处理它。如何确保我以正确的方式取消注册传感器?有没有“全局”的方式?

呼叫活动

lifecycle.addobserver(proximitySensor)

ProximitySensor.class

@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    private void registerOnResume(){
        registerListener();
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
    private void unregisterOnPause(){
        unregisterListener();
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
    private void unregisterOnStop(){
        unregisterListener();
    }

顺便说一句,我如何在没有重复代码的注释中声明更多状态?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...