package com.yixia.camera.demo; import java.io.File; import java.util.LinkedList; import java.util.List; import android.app.Activity; import android.app.Application; import android.content.Context; import android.content.Intent; import android.os.Environment; import com.yixia.camera.VCamera; import com.yixia.camera.demo.service.AssertService; import com.yixia.camera.util.DeviceUtils; public class VCameraDemoApplication extends Application { private static VCameraDemoApplication application; @Override public void onCreate() { super.onCreate(); application = this; // 设置拍摄视频缓存路径 File dcim = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM); if (DeviceUtils.isZte()) { if (dcim.exists()) { VCamera.setVideoCachePath(dcim + "/WeChatJuns/"); } else { VCamera.setVideoCachePath(dcim.getPath().replace("/sdcard/", "/sdcard-ext/") + "/WeChatJuns/"); } } else { VCamera.setVideoCachePath(dcim + "/WeChatJuns/"); } // 开启log输出,ffmpeg输出到logcat VCamera.setDebugMode(true); // 初始化拍摄SDK,必须 VCamera.initialize(this); // 解压assert里面的文件 startService(new Intent(this, AssertService.class)); } public static Context getContext() { return application; } // 运用list来保存们每一个activity是关键 private List<Activity> mList = new LinkedList<Activity>(); private static VCameraDemoApplication instance; // 构造方法 // 实例化一次 public synchronized static VCameraDemoApplication getInstance() { if (null == instance) { instance = new VCameraDemoApplication(); } return instance; } // add Activity public void addActivity(Activity activity) { mList.add(activity); } // 关闭每一个list内的activity public void exit() { try { for (Activity activity : mList) { if (activity != null) activity.finish(); } } catch (Exception e) { e.printStackTrace(); } finally { System.exit(0); } } }