未调用Android方法,但正在打印日志

未调用Android方法,但正在打印日志,android,android-studio,user-interface,Android,Android Studio,User Interface,因此,我有一个接口方法正在被调用,通过在logcat中打印日志这一事实进行验证,但是接口方法中的方法没有被调用。会打印onCenterEvent:picture-take日志,但pictureTaken()中的日志不会打印,并且不会发生任何事情(picture-take是viewmodel中的一个UI触发器方法)。为什么会发生这种情况 我尝试删除该方法,并将逻辑也放入onCenterEvent()中,但这也不起作用 以下是接口方法: @Override public void onCen

因此,我有一个接口方法正在被调用,通过在logcat中打印日志这一事实进行验证,但是接口方法中的方法没有被调用。会打印onCenterEvent:picture-take日志,但pictureTaken()中的日志不会打印,并且不会发生任何事情(picture-take是viewmodel中的一个UI触发器方法)。为什么会发生这种情况

我尝试删除该方法,并将逻辑也放入onCenterEvent()中,但这也不起作用

以下是接口方法:

@Override
    public void onCenterEvent() {
        Log.i(TAG, "onCenterEvent: mockLiveVideoNumber = " + mockLiveVideoNumber);
        if(mockLiveSectionNumber == 667 && mockLiveVideoNumber == 5){
            Log.i(TAG, "onCenterEvent: picture taken");
            handler.removeCallbacks(noInputTimer);
            handler.removeCallbacks(wrongInputTimer);
            pictureTaken();
            handler.postDelayed(correctInputTimer, threeSeconds);
        }else{
            handler.postDelayed(wrongInputTimer, threeSeconds);
        }

    }
下面是pictureTaken()方法:


我的解决方案:最终成为了一个可变的LiveData问题,我使用了.setvalue()而不是.postValue()来实现拍照可视性。这是一个线程问题,postValue()可以从后台线程调用,但仍然可以更新UI,而.setValue()不能

private void pictureTaken(){
        setPhotoTakenVisibility(true);
        Log.i(TAG, "pictureTaken: " + photoTakenVisibility);
        setPhotoFlashVisibility(true);
        Log.i(TAG, "flashVisibility: " + photoFlashVisibility);
        handler2.postDelayed(photoFlashRunnable, 50);
        handler2.postDelayed(photoTakenRunnable, threeSeconds);
    }