Android:如何在服务完成任务时启用按钮



我有两个按钮StartButtonStopButton在MainActivity.java上。当我按StartButton一个服务被创建和StartButton得到禁用。在按StopButton服务被销毁和StartButton得到启用

我想做的是启用我的开始按钮作为服务完成它的任务;它返回任何通知或触发类型的事件或消息值在我的MainActivity.java上,所以我的开始按钮得到启用。

请给我任何想法,概念或代码,使它容易为我理解。

要了解服务和应用程序之间的通信,请查看android开发人员文档中的示例。你可以在onServiceDisconnected()和onserviceconnconnected()方法中启用和禁用按钮。

请记住,默认情况下,该服务运行在与应用程序相同的线程中。

你试过了吗,

MyButton.setClickable(false);

将使按钮被禁用。

MyButton.setClickable(true);

它将启用该按钮。

然而,如果你想隐藏或显示按钮,你可以使用,

MyButton.setVisibiity(VIEW.VISIBLE);MyButton.setVisibiity(VIEW.INVISIBLE);

Edit-当您想启用按钮时,一旦它的任务完成,您可以打开mainActivity,标记值为true,就像这样,

Intent i= new Intent(getBaseContext(), myActivity.class);
i.putExtra("flag", true);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplication().startActivity(i);

mainActivity检查flag

的值
Boolean flag;
flag = this.getIntent().getBooleanExtra("flag", false);
if(flag == true) {
MyButton.setClickable(true);
}

但是对于它,你应该保持flag的初始值为false

一旦你点击了按钮,你就可以将它设置为不可点击

有很多方法可以做到这一点。让我告诉你一个广播接收器。我希望你知道BroadcastReceiver的概念。

活动中需要的更改

1)创建一个Broadcast receiver作为activity的内部类

2)注册一些动作,假设是"MY_ACTION"。(记住在onPause/onDestroy方法上注销这个接收器)

3)假设服务完成了它的任务,你进入了广播接收器的onReceive方法,现在写你的代码来启用/禁用按钮(我希望你知道怎么做)

服务需要更改

1)找出你认为它的任务已经完成的代码。

2)创建一个具有相同动作的intent ("MY_ACTION")。

3)以sendBroadcast为参数的广播消息。这样就完成了。:)

如果你觉得在任何地方卡住了,请告诉我

最新更新