public class MainActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<String> {
private TextView mTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = findViewById(R.id.textView);
LoaderManager loaderManager = getSupportLoaderManager();
loaderManager.initLoader(1, null, this);
}
@NonNull
@Override
public Loader<String> onCreateLoader(int id, @Nullable Bundle args) {
return new AsyncTaskLoader<String>(this) {
@Nullable
@Override
public String loadInBackground() {
return fetchDataFromNetwork();
}
@Override
protected void onStartLoading() {
forceLoad();
}
};
}
@Override
public void onLoadFinished(@NonNull Loader<String> loader, String data) {
mTextView.setText(data);
}
@Override
public void onLoaderReset(@NonNull Loader<String> loader) {
mTextView.setText("");
}
private String fetchDataFromNetwork() {
return "Hello World!";
}
}