DataLoader是一个Android异步数据加载框架。最常用的场景用于Activity打开之前预加载数据,在Activity的UI布局初始化完成后显示预加载的数据,大大缩短启动时间。
Via Gradle:
implementation 'com.jeremyliao:data-loader:1.0.0'
int preLoaderId = DataLoader.load(new LoadTask<String>() {
@Override
public String loadData() {
try {
Thread.sleep(1000);
} catch (InterruptedException ignored) {
}
return "data from network server";
}
});
Intent intent = new Intent(this, PreLoadBeforeLaunchActivity.class);
intent.putExtra("preLoaderId", preLoaderId);
startActivity(intent);
int id = getIntent().getIntExtra("preLoaderId", -1);
DataLoader.listen(id, this, new LoadListener<String>() {
@Override
public void onDataArrived(String data) {
tvShow.setText(data);
}
});
DataLoader.refresh(id);
-dontwarn com.jeremyliao.dataloader.**
-keep class com.jeremyliao.dataloader.** { *; }
简单的Demo可参考:MainActivity.java
本项目参考了开源项目luckybilly/PreLoader,借鉴了PreLoader的设计思想和使用场景。只是利用LiveData重新实现,构架更为简单,使用起来也不用关注何时remove listener,使用更方便。在此对PreLoader的作者@luckybilly表示感谢。