fragment 中有两个按钮 - 启动和停止服务按钮。在初始状态下,启动按钮启用,停止按钮禁用。当我单击“开始按钮”时,按钮状态发生变化。 -这意味着开始按钮被禁用,停止按钮被启用。在服务中,我检查 gps 状态。如果 gps 被禁用,我调用 stopself 方法来销毁服务。调用 stopself 方法后,我想更改 fragment 中的按钮状态。但我没有找到任何解决方案。我该怎么做?
最佳答案
您可以使用以下选项。
在您的 fragment 中。
//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);
关于Android服务stopself方法改变按钮状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52516769/