내 코드를 참조하십시오. 가능한 경우 내 progressDialog가 백그라운드에서 중간에 완료되면 화면이 멈 춥니 다 (아무 것도 표시되지 않고 logcat에 모든 로그가 표시됨) 배경 기능에서).asyncTask and progressDialog : Freeze
후, 오른쪽 끝 전에해서 ProgressDialog 다시 애니메이션 시작 몇 초 후에 종료 (기능이 완료되고, 그 결과는 일반적으로 표시)이 켰을
public class changeWall extends AsyncTask<Integer, Integer, Integer> {
protected Integer doInBackground(Integer... urls) {
int totalSize=0;
try {
if(s.loadBoolean() == false)
{
log("IF = false");
log("tempLogin = "+tempLogin);
log("tempPassword = "+tempPassword);
getNewResponse(tempLogin,tempPassword);
if(needSave)
{
s.saveBoolean(true);
}
}
else
{
if(s.loadLogin()==null)
{
getNewResponse(tempLogin,tempPassword);
}else
{
getNewResponse(s.loadLogin(),s.loadPassowrd());
}
}
parser.setLol(0);
parser.startParse(RESULT_STRING);
log("end parse");
} catch (ClientProtocolException e) {
log("internet connection lost");
} catch (IOException e) {
// TODO Auto-generated catch block
log(" connection lost");
}
log("count = "+parser.getFacebookId(1));
publishProgress();
totalSize=1;
log("end of start");
return totalSize;
}
protected void onProgressUpdate(Integer... progress) {
log("wall click ON PROGRESS UPDATE");
wall.setBackgroundResource(R.drawable.tabbuttonon);
messages.setBackgroundResource(0);
activity.setBackgroundResource(0);
profile.setBackgroundResource(0);
l1_1.setBackgroundResource(R.drawable.tabbuttononleft);
l1_2.setBackgroundResource(R.drawable.tabbuttononright);
l2_1.setBackgroundResource(0);
l2_2.setBackgroundResource(0);
l3_1.setBackgroundResource(0);
l3_2.setBackgroundResource(0);
l4_2.setBackgroundResource(0);
l4_2.setBackgroundResource(0);
wall.setTextColor(Color.BLACK);
messages.setTextColor(Color.WHITE);
profile.setTextColor(Color.WHITE);
activity.setTextColor(Color.WHITE);
try {
loadWall();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
wallProgres.dismiss();
}
protected void onPostExecute(Long result) {
if(result==1)
{
log("end WallChange");
}
}
}
심플 맵 :
----start progress(progress.show())
----start function
--- animation (progressDialog)
---animation(---)
---animation(---)
---FREEZ
---FREEZ(Function steel working normal, progressDialog in freeze mode)
---animation
---end function
---progress.dismis();//
비슷한 문제는 여기에 있습니다. (이 문제는 내 문제이지만 다운로드는하지 않습니다.) Freezing UI Thread with AsyncTask 감사합니다.
들에서, wallChanges.dissmis()가 정상 .. 오류가 아닙니다 여기에, 어쩌면 단지 바로이 오류를 설명 할 수없는 마감했다. 그러나 기능의 중간 작업 화면은 그냥 멈 춥니 다. (로그 고양이는 정상적으로 작동했습니다.) 그러나 정지 모드 (애니메이션은 screenShot처럼 실행되지 않음)와 기능 진행 상태의 최종 작업에서 애니메이션이 다시 표시되고 닫힌 상태로 진행됩니다. 미안하다. – Peter