活动恢复后的Android LiveData仅获取最新项目

时间:2017-08-17 09:10:00

标签: android android-livedata

我有聊天活动。因此,我在收到消息时逐个添加消息。

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

0 个答案:

没有答案