如何从 AsyncTask 切换到 Loader? 我需要为 Loader 创建一个新的 Java 类吗?
我当前的代码:
}
private class ProcessJSON extends AsyncTask<String, Void, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
Toast.makeText(MainActivity.this, R.string.loading, Toast.LENGTH_SHORT).show();
}
protected String doInBackground(String... strings) {
String stream = null;
String urlString = strings[0];
GoogleAPI hh = new GoogleAPI();
stream = hh.GetGoogleAPI(urlString);
return stream;
}
但想将AsyncTask更改为Loader。如何?啧啧。
public class ProcessJSON extends AsyncTaskLoader<String> {
public ProcessJSON (Context context) {
super(context);
}
@Override
public String loadInBackground() {
return "ProcessJSON";
}
}
在活动中实现加载器管理器回调。
您的活动
public class YourActivity extends Activity implements LoaderManager.LoaderCallbacks<String>{
@Override
public void onCreate(Bundle bundle){
getSupportLoaderManager().initLoader(1, null, this).forceLoad();
}
@Override
public Loader<String> onCreateLoader(int id, Bundle args) {
return new ProcessJSON(YourActivity.this);
}
@Override
public void onLoadFinished(Loader<String> loader, List<Employee> data) {
//do something on finished
}
@Override
public void onLoaderReset(Loader<String> loader) {
//do something
}
}