Android метод не вызывается, но журнал печатается - PullRequest
0 голосов
/ 18 марта 2020

поэтому у меня есть метод интерфейса, который вызывается, что подтверждается тем фактом, что журнал печатается в logcat, но метод внутри метода интерфейса не вызывается. Журнал onCenterEvent: снимок сделан, но журналы внутри функции pictureTaken () - нет, и ничего не происходит (снимок - это метод запуска пользовательского интерфейса внутри модели представления). Любая причина, почему это могло бы произойти?

Я попытался удалить метод и поместить logi c в 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 ():

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);
    }

Ответы [ 2 ]

0 голосов
/ 20 марта 2020

Мое исправление: в результате возникла проблема MutableLiveData, в которой я использовал .setvalue () вместо .postValue () для photoTakenVisibility. Это была проблема с потоками, когда postValue () можно вызывать из фонового потока и при этом обновлять пользовательский интерфейс, тогда как .setValue () этого не делает.

0 голосов
/ 19 марта 2020

Метод не вызывается должным образом. Я советую вам использовать инструменты отладки с этими журналами и попытаться выяснить, где происходит ошибка. Go построчно.

...