我有聊天活动。因此,我在收到消息时逐个添加消息。
我正在尝试将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);
}
});
}