package com.dh.foundation.app; import android.app.Application; import android.app.DownloadManager; import android.content.IntentFilter; import android.database.ContentObserver; import android.net.Uri; import com.dh.foundation.receiver.DownloadCompleteReceiver; import com.dh.foundation.manager.FoundationManager; import com.dh.foundation.observer.DownloadChangeObserver; import com.dh.foundation.utils.download.DownLoadUtil; public class FoundationApplicationDelegate { private final Application application; private ContentObserver dataChangeObserver; private DownloadCompleteReceiver downloadCompleteReceiver; public FoundationApplicationDelegate(Application application) { this.application = application; } public void onCreate() { FoundationManager.init(application); Thread.setDefaultUncaughtExceptionHandler(new UnCatchExceptionHandler(application)); DownLoadUtil.getInstance(); dataChangeObserver = new DownloadChangeObserver(FoundationManager.getHandleManager() .getHandler(DownLoadUtil.OBSERVE_CHANGE_HANDLER)); application.getContentResolver().registerContentObserver(Uri.parse("content://downloads/my_downloads/") , true, dataChangeObserver); downloadCompleteReceiver = new DownloadCompleteReceiver(); application.registerReceiver(downloadCompleteReceiver, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE)); } public void onTerminate() { application.getContentResolver().unregisterContentObserver(dataChangeObserver); application.unregisterReceiver(downloadCompleteReceiver); } }