我有两个按钮StartButton和StopButton在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为参数的广播消息。这样就完成了。:)
如果你觉得在任何地方卡住了,请告诉我