Как отключить кнопку, когда сервис закончится? - PullRequest
0 голосов
/ 11 октября 2018

В моем UpdateFragment у меня есть кнопка.Когда я нажимаю эту кнопку, она отключается и вызывает метод из службы.

Как я могу изменить кнопку обратно на enabled из моего метода обслуживания?

/* THIS IS updateFRAGMENT */
btnUpdateApp.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            FileUtil.logInformation(this.getClass().getName(), getResources().getText(R.string.manual_update_start).toString());

             //disable button
             btnUpdateApp.setEnabled(false);

             ServiceUtils s = new ServiceUtils();
             s.getUpdateInfos();

        }
    });


/* THIS IS MY SERVICE METHOD */
public void getUpdateInfos(){
    try {

        // ... some steps here ...

        //I want to return my button enabled here
    }
    catch (Exception ex){
        ex.printStackTrace();
    }
}

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Вам нужно создать слушателя и передать его в сервис.Примерно так будет выполнено задание:

public interface ServiceListener(){
    void onServiceFinished();
}

Сделайте так, чтобы ваш фрагмент реализовывал слушатель и повторно включите вашу кнопку внутри метода onServiceFinished.В вашем сервисе просто вызывайте метод слушателя, когда это необходимо.

0 голосов
/ 11 октября 2018

При вызове getUpdateInfos передайте ссылку на кнопку следующим образом:

s.getUpdateInfos(btnUpdateApp);

Заставьте метод getUpdateInfos принять новый параметр:

public void getUpdateInfos(YourButtonType btnUpdateApp) {

И когда выс вашими действиями, используйте ссылку, чтобы изменить кнопку обратно на включенный:

btnUpdateApp.setEnabled(true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...