REST APIを使用してリストを作成するAndroidアプリがあります。AsyncTask with REST API
私はAsyncTaskを使用してAPIを取得しようとしていますが、どのように動作するのか理解できません。私はNetworkOnMainThreadErrorを避けるために、バックグラウンドでAPIオブジェクトを作成していますが、これはnullオブジェクトに対してcreateItems()メソッドが呼び出されることにつながります。
APIオブジェクトをバックグラウンドで作成しても、OnCreateでそれを使用できるようにするにはどうすればよいですか?ありがとう!ここで
は私のOnCreate()メソッドのセグメントである:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_drawer);
createLists();
populateNameLists();
new GetAPITask().execute();
createItems();
(...)
}
そして、ここでは、エラー(createItemsを())を引き起こす方法であって、ここで
public void createItems() {
testString = api.testSession();
itemString = api.getItems(...);
(...)
}
はAsyncTaskです:
private class GetAPITask extends AsyncTask<String, Integer, String> {
protected void onPreExecute() {
super.onPreExecute();
}
protected String doInBackground(String... params) {
api = new API(getString(R.string.dev_id), getString(R.string.auth_key));
return "API Created";
}
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
}
protected void onPostExecute(String result) {
super.onPostExecute(result);
}
}