我在片段中有两个按钮-开始和停止服务按钮。在初始状态下,启动按钮处于启用状态,而停止按钮处于禁用状态。当我单击“开始按钮”时,按钮状态会更改。 -表示禁用启动按钮,启用停止按钮。在服务中,我检查GPS状态。如果禁用了gps,我将调用stopself方法来破坏服务。调用stopself方法后,我想更改片段中的按钮状态。但是我没有找到任何解决方案。我该怎么办?
答案 0 :(得分:1)
您可以使用以下选项。
在您的片段中。
//In your on Create method
IntentFilter updateState = new IntentFilter();
updateState.addAction("UPDATE_BUTTON_STATE");
registerReceiver(updateStatueReceiver, updateState);
private BroadcastReceiver updateStatueReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("UPDATE_BUTTON_STATE")) {
// Here you can update your button state
}
}
};
//unregister Receiver in on Destroy method
unregisterReceiver(updateStatueReceiver);
在您的服务等级中
您可以使用此代码发送广播
Intent broadCastIntent = new Intent();
broadCastIntent.setAction("UPDATE_BUTTON_STATE");
sendBroadcast(broadCastIntent);