package org.mortbay.ijetty; import org.mortbay.ijetty.util.ApkUtils; import org.mortbay.ijetty.util.PlayListUtil; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.os.SystemClock; import android.text.TextUtils; import android.util.Log; import android.webkit.WebSettings; import android.os.Bundle; public class ApkMonitorThread { private final static String TAG = "->ApkMonitorThread"; private Thread thread; private boolean doneFlag = false; private static ApkMonitorThread instance; private static boolean threadStartFlag = false; String mActivityName = null; public synchronized static ApkMonitorThread getInstance() { if (instance == null) instance = new ApkMonitorThread(); return instance; } private ApkMonitorThread() { doneFlag = false; thread = new Thread() { @Override public void run() { process(this); } }; thread.setName("Daemon ApkMonitorThread thread"); thread.setDaemon(false); } public void startup() { if (threadStartFlag) return; Log.i(TAG,"ApkMonitorThread thread.start();"); thread.start(); } public void shutdown() { if (threadStartFlag) thread.stop(); Log.i(TAG,"HeartBeatThread thread.stop();"); doneFlag = true; } public static final char SPLIT_CHAR = '|'; public void process(Thread thisThread) { threadStartFlag = true; try { while (!doneFlag && (thread == thisThread)) { try { if(ApkUtils.isApkChanged) { Log.w("smallstar", "ApkUtils.isApkChanged"); ApkUtils.getApks(); } if(!ApkUtils.isApkFileSynced) { //执行播放清单同步操作,主要为下载文件列表。 ApkUtils.isApkFileSynced = ApkUtils.syncApkFiles(); ApkUtils.isApkGetNeedConfirm = ApkUtils.isApkFileSynced; } if(ApkUtils.isApkGetNeedConfirm) { ApkUtils.confirmGetApks(); ApkUtils.isApkGetNeedConfirm = false; } } catch (Exception e) { e.printStackTrace(); } catch (OutOfMemoryError e) { e.printStackTrace(); } finally { SystemClock.sleep((AppConstants.HEARTBEAT_TIME - 3) * 1000); } } } catch (Exception e) { e.printStackTrace(); } finally { threadStartFlag = false; } } }