2014-07-12 3 views
0

내 앱에 하나의 문제가 있습니다. setBackgroundResource는 많은 처리 시간을 필요로합니다.이 메서드를 다른 스레드에서 실행할 수있는 방법이 있습니까? AsyncTask를 사용하려고했지만, UI 스레드에 액세스 할 수 없습니다. 이 방법이 처리되는 동안 다른 작업을 수행 할 수있는 방법이 있습니까?
Thx 사전에.AnimationDrawable.setBackgroundResource 많은 시간이 걸립니다

+0

는 "setBackgroundResource는 처리 시간이 많이 걸립니다"- 어떻게이 (예를 들어, Traceview를 통해)을 결정 있나요? 오래 걸리는 백그라운드 자원에 무엇을 사용하고 있습니까? – CommonsWare

+0

그는 AnimationDrawable에서 수백 PNG를 사용하고있을 것입니다 – pskink

+0

예크에는 많은 PNG 이미지가 있습니다. 다른 스레드에서이 작업을 수행 할 수있는 방법이 있습니까? – qwertyuiop

답변

0

당신은 AsyncTask를에 드로어 블을로드 할 수 다음 전체에서 UI를 수정 :

new AsyncTask<Void, Void, Drawable>() { 
    protected Drawable doInBackground(Void... ignored) { 
     return context.getResources().getDrawable(R.drawable.giant); 
    } 
    protected void onPostExecute(Drawable d) { 
     myView.setBackgroundDrawable(d); 
    } 
} 
관련 문제