android - 如何在 LifecycleObserver 中获取 LifecycleOwner?
问题描述
我需要在 LifecycleObserver 中获取 LifecycleOwner 以将其传递给 ViewModel 观察者。
这是我的 MainActivity,我是否添加了 LifecycleObserver。
public class MainActivity extends AppCompatActivity implements LifecycleOwner{
private LifecycleRegistry mLifecycleRegistry;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, MainFragment.newInstance())
.commitNow();
}
mLifecycleRegistry=new LifecycleRegistry(this);
mLifecycleRegistry.markState(Lifecycle.State.CREATED);
getLifecycle().addObserver(new MyLifecycleObserver());
}
@NonNull
@Override
public Lifecycle getLifecycle() {
return mLifecycleRegistry;
}
}
这是我的观察者,我需要 LifecycleOwner。
public class MyLifecycleObserver implements LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void onStartListener(){
FirebaseMassage.startFirebase();
MainFragment.massageViewModel.getMassage().observe(/*here I need the LifecycleOwner*/, textMassage -> {
FirebaseMassage.updateFirebaseMassage(textMassage);
});
}
}
解决方案
您可以使用另一个签名来获得LifecycleOwner
类似的东西:
public class MyLifecycleObserver implements LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void onStartListener(LifecycleOwner owner){
...
}
}
推荐阅读
- jquery-ui - Draggable UI - 如何定义不可拖动区域?
- python - 如何读取具有特定数据类型的文件内容而不是python中的字符串?
- python - Python Is there a way to send email to existing mailing list?
- arrays - Perl array : Pattern matches then move to the another array
- javascript - Accessing an object name from within the object
- react-native - firestore - react native - passing transaction as a parameter to a function
- php - Symfony 3 - isGranted doesn't work for roles
- powershell - 如何以逗号分隔的 csv 文件导出这些结果
- c++ - 使用 libconfig 库的 c++ 应用程序的 cmake 编译问题
- visual-studio - Visual Studio 2019 - Identify Specific Color Element Within a Color Theme