1

我有聊天活动。因此,当我收到消息时,我会一一添加消息。

我正在尝试将 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);
    }
});
}
4

0 回答 0