android新建model,android中模块间共享ViewModel实例

我正在研究MVVM架构。我想在我的android应用程序的模块之间共享一个视图模型实例。当用户从应用程序模块完成骑行时,我想访问我的聊天模块视图模型实例来执行一些数据库操作,例如清除对话实体等。我正在使用带有视图模型的房间数据库。ChatActivityNew是聊天模块中的一个活动。

应用程序模块预订活动

Dialogs.INSTANCE.showRideStatusDialog(mCurrentActivity, new View.OnClickListener() {

@Override

public void onClick(View v) {

Dialogs.INSTANCE.dismissDialog();

Dialogs.INSTANCE.showLoader(mCurrentActivity);

ChatActivityNew.setMukamalListener(iMukamalCallback);

dataRepository.requestEndRide(mCurrentActivity, driversDataHandler);

}

}

聊天模块聊天活动新建

/**

* Set the Mukamal Callback listener & call onMukamal abstract

* method which takes Message view model as a parameter.

*

* @param iMukamalCallback is a callback listener.

*/

public static void setMukamalListener(IMukamalCallback iMukamalCallback) {

mukamalCallback = iMukamalCallback;

mukamalCallback.onMukamal(mModel);

}

mModel为空,因为活动尚未加载,而MessageViewModel为空,因此我如何访问MessageViewModel的实例。

任何帮助都将是非常可观的。

编辑

Dialogs.INSTANCE.showRideStatusDialog(mCurrentActivity, new View.OnClickListener() {

@Override

public void onClick(View v) {

Dialogs.INSTANCE.dismissDialog();

Dialogs.INSTANCE.showLoader(mCurrentActivity);

EventBus.getDefault().postSticky(

new MessageEvent(com.example.chatmodule.utils.Constants.RIDE_COMPLETE)

);

dataRepository.requestEndRide(mCurrentActivity, driversDataHandler);

}

}

聊天模块订阅方法

@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)

public void onMessageEvent(MessageEvent event) {

if (mModel != null && event.message.equalsIgnoreCase(RIDE_COMPLETE)){

mModel.deleteConversation();

mModel.deleteMessages();

}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值