2013-07-12 2 views
1

У меня есть два метода в моем приложении, которые хотят исполняться один за другим.Асинхронный вызов с использованием Java-потока

removeAllNonSyncedData(); 
getFullDbFromREST(); 

Первый метод, который removeAllNonSyncedData() удалить все данные, не являющихся синхронизации из БД.

Когда все данные списываться, я хочу, чтобы выполнить 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(); 
     } 
Смежные вопросы