我在MainActivity.java上有两个按钮 StartButton 和 StopButton 。当我按 StartButton 时,会创建服务,并且StartButton会禁用。按 StopButton 服务销毁,StartButton获取启用。
我想要做的是启用我的开始按钮,因为服务已完成其任务;它会在我的MainActivity.java上返回任何通知或触发器类型事件或消息值,因此我的启动按钮会启用。
请给我任何想法,概念或代码,以便我理解。
答案 0 :(得分:0)
你试过吗,
MyButton.setClickable(false);
它会禁用该按钮。
和
MyButton.setClickable(true);
它将启用按钮。
但是,如果要隐藏或显示按钮,可以使用
MyButton.setVisibiity(VIEW.VISIBLE);
和MyButton.setVisibiity(VIEW.INVISIBLE);
编辑 - 由于您要启用该按钮,一旦其任务完成,您可以使用标志值true打开mainActivity,类似这样,
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
。
然后单击该按钮后,您可以将其设置为不可点击。
答案 1 :(得分:0)
要了解服务和应用程序之间的通信,请查看android developer docs中的示例。 您可以在onServiceDisconnected()和onServiceConnected()方法中启用和禁用按钮。
请记住,默认情况下,该服务在与您的应用相同的线程中运行。
答案 2 :(得分:0)
可以通过多种方式实现这一目标。让我告诉你一个广播接收器。我希望您了解BroadcastReceiver Concepts。
您的活动需要更改
1)在您的活动中创建一个广播接收器作为内部类。
2)注册一些动作,假设为“MY_ACTION”。(记得在onPause / onDestroy方法中取消注册此接收器)
3)假设服务完成了它的任务,你进入广播接收器的onReceive方法,现在写你的代码启用/禁用按钮(我希望你知道怎么做)您的服务需要更改
1)找出您认为其任务已完成的代码。
2)使用相同的动作创建一个意图(“MY_ACTION”)。
3)使用sendBroadcast广播消息,意图为param。你完成了:)
让我知道你是否觉得自己陷入了困境,