(2)解耦 Fragment
在新版的 SDK 中,Fragment 同样也默认实现了 LifecycleOwner 接口,因此,以上的例子同样适合于 Fragment。
(二)使用场景2:使用 LifecycleService 解耦 Service 与组件
(1)LifecycleService 基本介绍
Android 中拥有生命周期的组件除了 Activity/Fragment ,还有一个非常重要的组件就是 Service。LifecycleService 就是用来监听和解耦 Service 组件的。
public class LifecycleService extends Service implements LifecycleOwner {
private final ServiceLifecycleDispatcher mDispatcher = new ServiceLifecycleDispatcher(this);
…
@Override
@NonNull
public Lifecycle getLifecycle() {
return mDispatcher.getLifecycle();
}
}
(2)具体使用方法
第一步:添加相关依赖
implementation “androidx.lifecycle:lifecycle-service:2.2.0”
第二步:创建 MyServiceObserver 类,实现 LifecycleObserver 接口。使用 @OnLifecycleEvent 标记希望在 Server 生命周期发生变化时得到同步调用的方法。
public class MyServiceObserver implements LifecycleObserver {
private static String TAG = “MyServiceObserver”;
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
private void initVideo(){
Log.d(TAG,“initVideo”);
}
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
private void pausePlay(){
Log.d(TAG,“stopPlay”);
}
}

最低0.47元/天 解锁文章
1579

被折叠的 条评论
为什么被折叠?



