2012-09-07 6 views
0

진행률 표시 줄을 사용하여 로딩 효과를 사용하여 목록의 데이터를 목록에서로드하려고합니다. 웹 서비스에서 항목을 가져 오는 중입니다. 제가 직면 한 문제는 진행률 표시 줄을 표시 한 후에도이를 취소 할 수 없습니다. gridview.It 항목이있는 gridview 볼 수 있지만 진행률 표시 줄이 여전히 실행 중입니다. 내가 뭘 잘못하고 있습니다.AsyncTask에서 진행률 표시 줄을 닫을 수 없습니다.

private void testAsyncTask() { 
     Log.e("Im in testAsyncTask()", ""); 
     new AsyncTask<Object, Object, Object>() { 

      @Override 
      protected void onPreExecute() { 

       progress_Dialog = ProgressDialog.show(a, "", "Loading"); 


       Log.e("Im in onPreExecute", ""); 
       // super.onPreExecute(); 
      } 

      @Override 
      protected Integer doInBackground(Object... params) { 
       MenuService menuService = new MenuServiceImpl(); 
       PartnerMenuServiceResponse partnerMenu = menuService 
         .getPartnerMenu(); 
       jewellist = partnerMenu.getMenu().getMenuEntries(); 
       Log.e("Im in doInBackground", ""); 
       System.gc(); 

       return 0; 
      } 

      @Override 
      protected void onPostExecute(Object result) { 
       // TODO Auto-generated method stub 
       // super.onPostExecute(result);asd 
       Log.e("Im in onPostExecute", ""); 
       if (progress_Dialog.isShowing()) { 
        progress_Dialog.dismiss(); 
        } 
       ShopGridAdapter adapter = new ShopGridAdapter(ShopGridActivity.this, jewellist); 
       AllJewelgridView.setAdapter(adapter); 
        adapter.notifyDataSetChanged(); 

       //AllJewelgridView.setAdapter(new ShopGridAdapter(
        // ShopGridActivity.this, jewellist)); 

       if (AllJewelgridView.getCount() <= 0) { 
        MyAlertDialog.ShowAlertDialog(ShopGridActivity.this, "", 
          "No data found.", "OK"); 
       } 
       progress_Dialog.dismiss(); 
      } 

     }.execute(); 

    } 

답변

2
@Override 
protected void onPreExecute() { 
    progress_Dialog = new ProgressDialog(context); 
    progress_Dialog.setMessage("Loading..."); 
    progress_Dialog.show(); 
} 

편집 : 그것은 가능 onPostExecute()가 호출되지 않을 수 있습니다

@Override 
protected void onPostExecute(Object result) { 
    Log.e("Im in onPostExecute", "");  <------ ARE YOU ABLE SEE THIS IN logcat ? 
    progress_Dialog(); 
} 

. 그래서 체크 로그 캣에게

+1

진행률 대화 상자를 볼 수는 있지만이를 닫을 수는 없습니다. –

+0

@ChiragRaval : 내 편집 된 답변보기 – MAC

+0

No Logcat didnot nothing anything – playmaker420

0

당신을 도울 수 이상 당신의 AsyncTask

ProgressDialog progress=null; 
progress=ProgressDialog.show(this,"title","loading..").show();//put this code in onPreExecute() 
progress.dismiss();//put this code in onPostExecute() 

일부 코드를 삽입해야합니다.

if (progress_Dialog != null) { 
      progress_Dialog.cancel(); 
     } 
+0

문제는 onCreate()에있다. 답장을 보내 주셔서 감사합니다. – playmaker420

+0

아직도 문제가 남아 있습니까? –

관련 문제