LifecycleModel 分享
发布日期:2021-05-10 05:21:55 浏览次数:24 分类:精选文章

本文共 3558 字,大约阅读时间需要 11 分钟。

������Fragment��������������������������� ��� ������MVVM���������������������������������

���������������

���������������Android���������������������������������������������������ViewModel���������������������������������������������������������������������������������������������������������������Fragment������������������������������������������������������������������MVVM������������������������������������������������������������������������������

������������

  • ������������������������������������������������������Fragment���������������
  • ������������������������������LifecycleModel������������������������������
  • ���������������������������������������������������������������������������UI������������������������������
  • ������������������

    ���������������������

    Custom Lifecycle Model implementation:

    class UserLifecycleModel implements LifecycleModel {
    private val mSubject = PublishSubject.create()
    fun doAction(s: String) {
    mSubject.onNext(s)
    }
    fun addAction(consumer: Consumer
    ) {
    mSubject.subscribe(consumer)
    }
    override fun onCleared() {}
    }

    ������Fragment���������������������������

    Fragment Lifecycle Management:

    HolderFragment extends Fragment {
    // ...
    private final LifecycleModelStore mLifecycleModelStore = new LifecycleModelStore()
    HolderFragment() {
    setRetainInstance(true)
    }
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState)
    sHolderFragmentManager.holderFragmentCreated(this)
    }
    // ...
    }

    ������������

    ������������

  • ��������������� Lifecycle Model

    class UserLifecycleModel implements LifecycleModel {
    //...
    }
  • ������ Fragment

    LifecycleModelProviders.of(this).put(UserLifecycleModel.class.getName(), UserLifecycleModel())
  • ������ Fragment ������

    // Singleton Fragment implementation
    class HolderFragment : Fragment() {
    // ...
    }
  • ������������������������

    class HolderFragment : Fragment() {
    // ...
    private final LifecycleModelStore mLifecycleModelStore = LifecycleModelStore()
    override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    sHolderFragmentManager.holderFragmentCreated(this)
    }
    }
  • ������ UI������������

    // ��� Fragment������������������
    UserLifecycleModel lifecycleModel = getLifecycleModelStore().get(
    UserLifecycleModel::class.java.name
    )
    lifecycleModel.addAction(Consumer { s ->
    // ������ UI
    Log.d("AFragment", s)
    })
  • ������������������������

    UserLifecycleModel lifecycleModel = getLifecycleModelStore().get(
    UserLifecycleModel::class.java.name
    )
    lifecycleModel.doAction("JessYan")
  • ������������������

    HolderFragment���

    Fragment ��������������������� Fragment ������������������������������ Activity ���������������������������������������������������

    LifecycleModelStore���

    ��������������������� LifecycleModel ��������������������� Fragment������������������������������

    HolderFragmentManager���

    ������ Fragment ��� Activity ������������������������������ Fragment ������������������������������

    ������������������������

    .hxx ��������������������������������� Fragment ��������� Activity ���������������������������������������

    ��������������������� HolderFragment ��� Fuksonize ��������������������������������������������������� Activity ���������������������

    ������

    ������������ Fragment ������������������������������������������������ MVVM ������������������������������������������������������������������������������������������������������������������������������

    上一篇:Fragment 相关Api - 持续更新
    下一篇:Gradle 版本对应关系

    发表评论

    最新留言

    第一次来,支持一个
    [***.219.124.196]2025年04月23日 08时55分57秒