我有聊天活动。因此,当我收到消息时,我会一一添加消息。
我正在尝试将 ViewModel 与 Activity 一起使用。我正在使用 LiveData 将消息从 ViewModel 传递到 Activity。当 Activity 处于活动状态时一切正常,但是当 Activity 处于隐藏状态时,我的观察者没有从 ViewModel 获取项目。此外,当我恢复活动时,我的观察者只会获得在 ViewModel 中分配给它的最新项目。
基本上,如果应用程序在后台,我需要缓冲项目,并将它们全部放在活动恢复中。
ChatViewModel
class ChatViewModel : ViewModel() {
var adapterMessagesLive: MutableLiveData<AdapterChatItems> = MutableLiveData()
fun addMessage() {
adapterMessagesLive.value = AdapterChatItems(items, addDirection)
}
}
ChatActivity
public class ChatActivity implements LifecycleRegistryOwner {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
viewModel.getAdapterMessagesLive().observe(this, adapterChatItemsObserver -> {
getAdapter().addMessages(adapterChatItemsObserver);
}
});
}