dependencies {
implementation 'androidx.loader:loader:1.2.0'
}
public class CustomLoader extends androidx.loader.content.Loader<String> {
private String data;
public CustomLoader(Context context) {
super(context);
}
@Override
protected void onStartLoading() {
if (data != null) {
deliverResult(data);
} else {
forceLoad();
}
}
@Override
public String loadInBackground() {
return "Loaded data";
}
@Override
public void deliverResult(String data) {
this.data = data;
super.deliverResult(data);
}
}
public class MainActivity extends AppCompatActivity implements
LoaderManager.LoaderCallbacks<String> {
private static final int LOADER_ID = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LoaderManager.getInstance(this).initLoader(LOADER_ID, null, this);
}
@NonNull
@Override
public Loader<String> onCreateLoader(int id, @Nullable Bundle args) {
return new CustomLoader(this);
}
@Override
public void onLoadFinished(@NonNull Loader<String> loader, String data) {
Log.d("TAG", "Loaded data: " + data);
}
@Override
public void onLoaderReset(@NonNull Loader<String> loader) {
}
}