Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 当其生命周期所有者为onDestroy时,接近传感器保持注册状态_Android_Android Lifecycle_Activity Lifecycle_Lifecycleowner - Fatal编程技术网

Android 当其生命周期所有者为onDestroy时,接近传感器保持注册状态

Android 当其生命周期所有者为onDestroy时,接近传感器保持注册状态,android,android-lifecycle,activity-lifecycle,lifecycleowner,Android,Android Lifecycle,Activity Lifecycle,Lifecycleowner,我有一个项目,你可以打电话。调用发生在作为LifecycleOwner的CallActivity中,而另一个处理传感器的类是LifecycleObserver 当用户A呼叫用户B时,接近传感器被注册,屏幕关闭。如果用户-A结束呼叫,并且用户-B的耳朵仍然靠近设备,则当CallActivity处于onDestroy状态时,传感器仍然被注册 因此,传感器会在手机附近的不应该关闭屏幕的地方用手势关闭屏幕。 如果用户B在CallActivity仍处于活动状态时将手机从耳朵中取出,则传感器将成功注销,应用

我有一个项目,你可以打电话。调用发生在作为LifecycleOwner的CallActivity中,而另一个处理传感器的类是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();
    }
顺便说一句,我如何在注释中声明更多状态而不重复代码