저는 초보자 Android 개발자이며 GSON 및 AsynTask를 사용하여 RESTful 웹 서비스에서 데이터를 가져 오려고합니다. AsynTask 클래스를 포함하는 활동이 호출 될 때 그러나 내가 로그 캣에서 얻을 수있는 유일한 오류는 다음과 같습니다Android - 스택 추적 파일을 열 수 없습니다.
01-02 11 : 17 : 58.275 : E/dalvikvm (807) : 스택 추적 파일 을 열 수 없습니다 '/data/anr/traces.txt는'따라서 응답이 웹 서비스에서 가져온되지 않는 디렉토리
그리고 다음 doInBackground
메서드를 호출 할 수 없습니다입니다. 나는이 문제를 봤지만 대부분의 사람들은 permission denied
또는 뭔가를 가지고 있지만, 내 경우에는 is a directory
이 아닙니다. 이 문제를 해결하는 방법에 대한 제안이 있으시면 저를 도우십시오! 사람이 AsynTask를 포함하는 클래스의 코드를 요청할 수 있습니다 경우
public class PlaceListActivity extends Activity{
private ListView m_vwPlaceLayout;
private ArrayList<Place> m_arrPlaceList;
private PlaceAdapter m_placeListAdapter;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.place_list);
m_vwPlaceLayout = (ListView) findViewById(R.id.spotListView);
m_arrPlaceList = new ArrayList<Place>();
m_placeListAdapter = new PlaceAdapter(this, R.layout.place_view, m_arrPlaceList);
m_vwPlaceLayout.setAdapter(m_placeListAdapter);
populateList();
}
public void populateList(){
Intent intent = getIntent();
String key = intent.getStringExtra("KEYWORD");
new GetSpots().execute(key);
}
private class GetSpots extends AsyncTask<String, Integer, ArrayList<Place>>{
protected ArrayList<Place> doInBackground(String... keys){
ArrayList<Place> list = null;
String url = "http://10.0.2.2:81/HGourmet/getPlaces?key=" + keys[0].trim();
try{
RestClient client = new RestClient(url);
try{
client.Execute(RequestMethod.GET);
}catch(Exception e){
e.printStackTrace();
}
String json = client.getResponse();
Gson gson = new Gson();
Type listType = new TypeToken<ArrayList<Place>>(){}.getType();
list = gson.fromJson(json, listType);
}catch(Exception e){}
return list;
}
protected void onProgressUpdate(Integer... progress){
}
protected void onPreExecute(){
}
protected void onPostExecute(ArrayList<Place> placeList){
if (placeList != null){
for (Place place : placeList){
m_arrPlaceList.add(place);
}
m_placeListAdapter.notifyDataSetChanged();
}
else{
Toast.makeText(PlaceListActivity.this, "No Results!", Toast.LENGTH_LONG).show();
}
}
}
}
비동기 작업을 호출 할 때 사용한 코드를 게시 할 수 있습니까? – almuneef
안녕하세요 almuneef, 방금 AsyncTask가 포함 된 전체 클래스로 게시물을 편집했습니다. 이 클래스의 핵심은 웹 서비스에서 데이터를 가져와 목록으로 표시하는 것입니다. –