groovy
dependencies {
implementation 'androidx.loader:loader:1.1.0'
}
import android.content.Context;
import androidx.loader.content.AsyncTaskLoader;
public class LibraryLoader extends AsyncTaskLoader<String> {
private String version;
public LibraryLoader(Context context, String version) {
super(context);
this.version = version;
}
@Override
public String loadInBackground() {
return getVersionFromServer();
}
@Override
protected void onStartLoading() {
if (version != null) {
deliverResult(version);
}
forceLoad();
}
}
}
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.loader.app.LoaderManager;
import androidx.loader.content.Loader;
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);
}
@Override
public Loader<String> onCreateLoader(int id, Bundle args) {
return new LibraryLoader(this, "1.0.0");
}
@Override
public void onLoadFinished(Loader<String> loader, String data) {
updateVersion(data);
}
@Override
public void onLoaderReset(Loader<String> loader) {
}
}