package roman10.tutorial.fileobserver; import java.io.File; import roman10.tutorial.utils.EnvironmentUtilsStatic; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.widget.Toast; public class FileModificationService extends Service{ private MyFileObserver fileOb; //private static final int MAX_FO = 1; //private List<MyFileObserver> fileOb_list = new ArrayList<MyFileObserver>(); @Override public void onCreate() { if (!EnvironmentUtilsStatic.is_external_storage_available()) { Toast.makeText(FileModificationService.this, "SDCARD is not available!", Toast.LENGTH_SHORT).show(); return; } File sdcard = new File("/sdcard/"); if (sdcard == null) { return; } else { //fileOb_list.clear(); num_of_fos = 0; createFileObs(sdcard); } } //only create fileobserver for folders int num_of_fos = 0; private void createFileObs(File f) { /*if (num_of_fos > MAX_FO) { return; }*/ if (!f.isDirectory()) { //MyFileObserver aFileOb = new MyFileObserver(f.getAbsolutePath()); //fileOb_list.add(aFileOb); } else { fileOb = new MyFileObserver(f.getAbsolutePath()); /*MyFileObserver aFileOb = new MyFileObserver(f.getAbsolutePath()); fileOb_list.add(aFileOb); num_of_fos++; try { for (File currentFile : f.listFiles()) { createFileObs(currentFile); } } catch (Exception e) { Log.e("Error", e.toString()); }*/ } } @Override public void onStart(Intent intent, int startid) { fileOb.startWatching(); /*for (int i = 0; i < fileOb_list.size(); ++i) { fileOb_list.get(i).startWatching(); }*/ Toast.makeText(this.getApplicationContext(), "start monitoring file modification", Toast.LENGTH_SHORT).show(); } @Override public void onDestroy() { fileOb.stopWatching(); /*for (int i = 0; i < fileOb_list.size(); ++i) { fileOb_list.get(i).stopWatching(); }*/ Toast.makeText(this.getApplicationContext(), "stop monitoring file modification", Toast.LENGTH_SHORT).show(); } @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } }