服务完成后如何禁用按钮?

时间:2018-10-11 12:38:47

标签: java android android-service

在我的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 :(得分:0)

调用getUpdateInfos时,将引用传递给按钮,如下所示:

s.getUpdateInfos(btnUpdateApp);

使getUpdateInfos方法接受新参数:

public void getUpdateInfos(YourButtonType btnUpdateApp) {

完成操作后,请使用参考将按钮更改回启用状态:

btnUpdateApp.setEnabled(true);

答案 1 :(得分:0)

您需要创建一个侦听器,并将其传递给服务。这样的事情将使工作:

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

使您的片段实现侦听器,并在onServiceFinished方法内重新启用您的按钮。在您的服务中,仅在需要时调用侦听器的方法。

相关问题