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