如何以最简单的方式将异步任务切换到加载器?



如何从 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
}

}

最新更新