我想在领域中使用缓存数据,然后使用改造从服务器更新数据。我通过以下方式管理:
matlab -nodesktop -nosplash -r "my_script.m"
我的问题是获取当前状态: 1-如果领域中没有数据显示进度 2-如果没有数据且没有网络显示错误对话框 3-如果领域中有数据且没有网络仅显示来自领域的数据 4-如果领域中没有数据且没有来自改造的数据显示没有数据状态
任何想法如何知道来自concat的resuslts是什么? (改造或领域)
答案 0 :(得分:0)
我最终将编辑getNotifications方法编辑为以下内容
public void getNotifications() {
setNoData(false);
setLoading(false);
if (ConectivityUtils.isDeviceConnectedToNetwork(mContext)) {
if (mRealm.where(Notification.class).count() > 0) {
Observable.concat(getCashedNotifications(), downloadNotification())
.subscribe(new Action1<List<Notification>>() {
@Override
public void call(List<Notification> notifications) {
setSize(notifications.size() + "");
}
});
} else {
// show progress
setLoading(true);
downloadNotification().subscribe(new Action1<List<Notification>>() {
@Override
public void call(List<Notification> notifications) {
setLoading(false);
if (notifications.size() > 0) {
setSize(notifications.size() + "");
} else {
// no data in realm and retrofit
setNoData(true);
setErrorMessage("No data");
}
}
});
}
} else {
if (mRealm.where(Notification.class).count() > 0) {
getCashedNotifications().subscribe(new Action1<List<Notification>>() {
@Override
public void call(List<Notification> notifications) {
setSize(notifications.size() + "");
}
});
} else {
//show no network
setNoData(true);
setErrorMessage("No Network");
}
}
}
但我相信有比这更好,更清洁的解决方案