2016-07-14 6 views
0

Вот мой FileObserver код:Дубликат зацикливание

private void updatecheck() { 
    // Email sync loop 
    mHandler.post(new Runnable() { 
     @Override 
     public void run() { 
      if (Looper.myLooper() == null) { 
       Looper.prepare(); 
      } 

      FileObserver observerGAD7 = new FileObserver(String.valueOf(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS + "/GAD7_Client_Responses.db"))) { 
       @Override 
       public void onEvent(int event, String path) { 
        if ((FileObserver.MODIFY & event)!=0) { 
         System.out.println("GAD7 file event"); 
         //TODO EMAIL GAD7 DATABASE AUTOMATICALLY 
        } 
       } 
      }; 
      observerGAD7.startWatching(); 

      FileObserver observerPHQ9 = new FileObserver(String.valueOf(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS + "/PHQ9_Client_Responses.db"))) { 
       @Override 
       public void onEvent(int event, String path) { 
        if ((FileObserver.MODIFY & event)!=0) { 
         System.out.println("PHQ9 file event"); 
         //TODO EMAIL PHQ9 DATABASE AUTOMATICALLY 
        } 
        // Looper.myLooper().quit(); 
       } 
      }; 
      observerPHQ9.startWatching(); 
      Looper.loop(); 
     } 
    }); 
} 

Он возвращается 2 отчетов для входа, а не только один. Это означало бы, что будет отправлено 2 автоматических сообщения электронной почты, которые не были бы идеальными.

Может ли кто-нибудь помочь мне с моим синтаксисом?

+0

Какое сообщение печатается дважды? – W0rmH0le

+1

Этот код сильно сломан. Он будет висеть Looper, связанный с myHandler, пока Looper не появится в Runnable-выходах. Я не уверен, что вы пытаетесь сделать, но это не имеет смысла. –

+0

В настоящее время код должен постоянно проверять два файла. Если они были изменены, копия автоматически отправляется по электронной почте Однако в настоящее время код просто записывает комментарий в системный журнал. Он должен писать только один раз, а не дважды. – NormalUser

ответ

-1

В чем проблема? для меня не ясно, что вы видите проблему. Возможно я могу вам помочь. Или вы можете увидеть исходный код товара Looper & Handler

+0

Это скорее комментарий, чем ответ ... Ваше отсутствие разрешения на комментарий не является основанием для этого ... – W0rmH0le

+0

Используйте комментарии для такого рода предложений, а не ответа ' – Vickyexpert

Смежные вопросы