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()) 일으키는 방법 다음 AsyncTask를 여기
public void createItems() {
testString = api.testSession();
itemString = api.getItems(...);
(...)
}
이다 :
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);
}
}