2013-07-12 54 views
1

我在我的應用程序中有兩種方法,即希望一個接一個執行。使用Java線程的異步調用

removeAllNonSyncedData(); 
getFullDbFromREST(); 

第一種方法是removeAllNonSyncedData()它從db中刪除所有非同步數據。

當所有數據被清除,我想執行getFullDbFromREST()

private void removeAllNonSyncedData() { 
     try { 

      ContentResolver cr = getContentResolver(); 
      ContentProviderHelp helper = new ContentProviderHelp(); 


      ObjectPropertyValueTable ObjectPropertyValueTable = new ObjectPropertyValueTable(helper); 
      ObjectPropertyValueAuditTrailTable ObjectPropertyValueAuditTrailTable = new ObjectPropertyValueAuditTrailTable(helper); 
      PhotoInfoTable PhotoInfoTable = new PhotoInfoTable(helper); 
      PropertyDefinitionTable PropertyDefinitionTable = new PropertyDefinitionTable(helper); 

      SyncManagerTable SyncManagerTable = new SyncManagerTable(helper); 


      cr.delete(ObjectPropertyValueTable.getContentURI(), ObjectPropertyValueTable.SyncStatus+"<>1", null); 
      cr.delete(ObjectPropertyValueAuditTrailTable.getContentURI(), null, null); 
      cr.delete(SyncManagerTable.getContentURI(), null, null); 
      cr.delete(PhotoInfoTable.getContentURI(), PhotoInfoTable.SyncStatus+"<>1", null); 


     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

我如何可以執行第二種方法第一種方法是進行(從數據庫中完全清除數據)之後?

回答

3

嗯,這是默認情況下,除非您異步調用第一個方法。否則,方法總是一個接一個地執行。

0

我已經實現了那種使用線程的條件 我想寫完文件後寫一個文件然後我想讀一個文件,所以我讓兩個線程讀取和寫入如下方式和用戶等待和通知功能。

public Object isWrite=new Object(); 
    private class WriteThread extends Thread { 
     @Override 
     public void run() { 
      super.run(); 
      synchronized (isWrite){ 
         //Do something as you want 
         isWrite.wait(); 
     } 
} 
} 

    private class ReadThread extends Thread { 
     @Override 
     public void run() { 
      super.run(); 
      synchronized (isWrite){ 
         //Do something as you want       
         isWrite.notify(); 

     } 
} 
} 

     //Calling of write thread then read thread. 
     try { 
      WriteThread mWriteThread=new WriteThread(); 
      mWriteThread.start(); 

      mReadThread = new ReadThread(); 
      mReadThread.start(); 

     } catch (SecurityException e) { 
      e.printStackTrace(); 
     }