要从服务中调用一个 Fragment 的方法,可以使用 EventBus 来实现。EventBus 是一个开源的 Android 库,用于简化组件之间的通信。以下是一个示例代码:
implementation 'org.greenrobot:eventbus:3.2.0'
public void onEvent(EventClass event) {
// 处理事件逻辑
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EventBus.getDefault().register(this);
}
@Override
public void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
EventBus.getDefault().post(new EventClass());
public class MyService extends Service {
// ...
public void someMethod() {
// 发送事件到 Fragment
EventBus.getDefault().post(new EventClass());
}
}
通过以上步骤,服务就可以调用 Fragment 中的方法了。记得在 Fragment 中定义的方法需要添加 @Subscribe 注解,以便 EventBus 可以正确地调用该方法。