package com.android.iliConnect.dataproviders; import java.util.Timer; import java.util.TimerTask; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Handler; import com.android.iliConnect.MainActivity; public class DataDownloadThread { public TimerTask doAsynchronousTask; private Timer timer = new Timer(); private static boolean startNotificationThread = false; public void startTimer() { final Handler handler = new Handler(); doAsynchronousTask = new TimerTask() { @Override public void run() { handler.post(new Runnable() { public void run() { try { ConnectivityManager cM = (ConnectivityManager) MainActivity.instance.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo nInfo = cM.getActiveNetworkInfo(); if (MainActivity.instance.localDataProvider.settings.sync && nInfo != null) { MainActivity.instance.remoteDataProvider = new RemoteDataProvider(); // WIFI-only sync ? if (!MainActivity.instance.localDataProvider.settings.sync_wlanonly || nInfo.getType() == ConnectivityManager.TYPE_WIFI) { MainActivity.instance.remoteDataProvider.execute(MainActivity.instance.localDataProvider.remoteData.getSyncUrl() + "?action=sync"); } // Notification-Thread erst beim zweiten Sync-Lauf starten if (startNotificationThread == true) { if (MainActivity.instance.notificationThread.doAsynchronousTask == null) { MainActivity.instance.notificationThread.startTimer(); } } else { startNotificationThread = true; } } } catch (Exception e) { } } }); } }; start(); } public void start() { timer.schedule(doAsynchronousTask, 0, MainActivity.instance.localDataProvider.settings.interval * 60 * 1000); } }