package com.looklook.xinghongfei.looklook;
import android.app.Application;
import android.content.Context;
import android.support.v7.app.AppCompatDelegate;
import com.looklook.xinghongfei.looklook.activity.BaseActivity;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
/**
* Created by xinghongfei on 16/8/12.
*/
public class MyApplication extends Application {
public final static String TAG = "BaseApplication";
public final static boolean DEBUG = true;
private static MyApplication myApplication;
private static int mainTid;
/**
* Activity集合,来管理所有的Activity
*/
private static List<BaseActivity> activities;
static {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);
}
public static Application getContext() {
return myApplication;
}
@Override
public void onCreate() {
super.onCreate();
myApplication = this;
activities = new LinkedList<>();
mainTid = android.os.Process.myTid();
}
/**
* 获取application
*
* @return
*/
public static Context getApplication() {
return myApplication;
}
/**
* 获取主线程ID
*
* @return
*/
public static int getMainTid() {
return mainTid;
}
/**
* 添加一个Activity
*
* @param activity
*/
public void addActivity(BaseActivity activity) {
activities.add(activity);
}
/**
* 结束一个Activity
*
* @param activity
*/
public void removeActivity(BaseActivity activity) {
activities.remove(activity);
}
/**
* 结束当前所有Activity
*/
public static void clearActivities() {
ListIterator<BaseActivity> iterator = activities.listIterator();
BaseActivity activity;
while (iterator.hasNext()) {
activity = iterator.next();
if (activity != null) {
activity.finish();
}
}
}
/**
* 退出应运程序
*/
public static void quiteApplication() {
clearActivities();
System.exit(0);
}
}