2016-04-11 19 views
0
  1. için Server Doinbackground Getiriliyor Verilerinin önce çalıştırılıyor olup, ben DoinBackground yöntemleOnPostExecute Yöntemi benim Android zaman uyumsuz görev sınıfında Yerel

  2. iç Ama DoinBackground bitirmeden önce yerel veritabanına bir Azure Sunucudan veri alınırken ediyorum Ben ProgressBar

devre dışı am

  • yöntem OnPostExecute içinde yöntem, bu OnPostExecute usulü uygulamaya ediyor

    Bu sorunu çözmeme yardımcı olun.

    Kodum :

    public class AsyncTaskSync_UserGroupMappingTableClass extends AsyncTask<String, String, Boolean> 
    { 
         { 
    
         @Override 
         protected void onPreExecute() 
         { 
          super.onPreExecute(); 
         } 
    
         @Override 
         protected Boolean doInBackground(String... values) 
         { 
          try 
          { 
           mToDoTable_Form5_SPINNER_DataTable456_ServerAzure 
               .execute(new TableQueryCallback<FormsObjectTable2TaskHopsSPinnerValues>() { 
                public void onCompleted(List<FormsObjectTable2TaskHopsSPinnerValues> result, int count, Exception exception, ServiceFilterResponse response) { 
             if (exception == null) { 
              if (!result.equals("")) { 
               for (int i = 0; i < result.size(); i++) { 
                /*Table 5 SPinner Data Table*/ 
                IdValue_TableValue5 = result.get(i).getId(); 
                ImeiStringval1_TableValue5 = result.get(i).getImeINumberValOne(); 
                Spinner_IDStringVal1_TableValue5 = result.get(i).getSpinner_id_StringOne(); 
                Spinner_data_StringVal1_TableValue5 = result.get(i).getSPinner_data_Value_StringOne(); 
                Log.i("From SErver DataBase", " Spinner : " + ImeiStringval1_TableValue5 + " : " + Spinner_IDStringVal1_TableValue5 + " : " + Spinner_data_StringVal1_TableValue5); 
                Asynxfor_DATAinsert5_SpinnerTable(IdValue_TableValue5, ImeiStringval1_TableValue5, Spinner_IDStringVal1_TableValue5, Spinner_data_StringVal1_TableValue5); 
               } 
              } else { 
               Log.i("Data Retrieval Not Found", "No Data In Server For Specific IMEI......!"); 
              } 
            } else { 
              Log.i("SOme Exception", "Data Retrieval From Server FORMTABLE1 Data......!"); 
              exception.printStackTrace(); 
            } 
           } 
          }); 
         } 
         catch (Exception e) 
         { 
          e.printStackTrace();; 
          Log.i("Data Retrieval", "Exception Occur......!"); 
         } 
    
         // PrgDialog.dismiss(); 
         return null; 
        } 
    
        @Override 
        protected void onPostExecute(Boolean results) 
        { 
         try 
         { 
          Log.i("DONE ", "Data Sync Done Successfully 5 Spinner Values"); 
          PrgDialog.dismiss(); 
         } 
         catch (Exception e) 
         { 
          e.printStackTrace(); 
          Log.i("Exception ", "Post Excecute"); 
         } 
        } 
    }; 
    

    düzenleme 1

    Benim Logcat mesajı: Eğer doInBackground iç yapıyoruz istekleri asynchronusly işte yapılır

    // From OnPostExecute first Executing also disabling the Progressbar 
    DONE: Data Sync Done Successfully Form Master 1 
    
    // From Doinbackground 
    From Server database 
    
  • +0

    Logcat'i paylaşabilir misiniz? –

    +0

    DONE: Data Sync Bitti Başarıyla Oluşturun Master 1 – Kumar

    +0

    "execute()" yönteminin kendisinin eşzamansız olduğunu ve bunun bir geri çağrı nesnesi argümanını aldığını düşünürdüm. Yani, bir AsyncTask'a koymanıza gerek yok. –

    cevap

    1

    doInBackground zaten yürütmek demektir TableQueryCallback'u almadan önce. Başka bir deyişle, başka bir iş parçacığı başlatıyor. Ben bir AsyncTask içinde onu çevrelemeniz gerekmediğini düşünüyorum, yanıtınızı bir İşleyici veya bir Arabirim ile TableQueryCallback.onCompleted()'da halledebilirsiniz.

    +0

    güncellenmiş Async görevime bir Göz At Sınıfı – Kumar

    +0

    Tamam, denediğin şey .. – Kumar

    +0

    Teşekkür ederim arkadaşım, Onun Çalıştığı-İçerdiği OnCompleted Metod I ProgressBar'ı Devre Dışı Bıraktı. – Kumar

    İlgili konular