Administrator
2021-11-06 0a959c72b7ad981fee1427f5db8e72c0938acd9c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
package com.duqing.missions;
 
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.os.Bundle;
 
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
 
import com.duqing.missions.util.MyLog;
import com.scwang.smart.refresh.footer.ClassicsFooter;
import com.scwang.smart.refresh.header.ClassicsHeader;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.scwang.smart.refresh.layout.api.RefreshFooter;
import com.scwang.smart.refresh.layout.api.RefreshHeader;
import com.scwang.smart.refresh.layout.api.RefreshLayout;
import com.scwang.smart.refresh.layout.listener.DefaultRefreshFooterCreator;
import com.scwang.smart.refresh.layout.listener.DefaultRefreshHeaderCreator;
 
import java.util.ArrayList;
import java.util.List;
 
/**
 * Created by Administrator on 2021/10/28 0028.
 */
public class MyApplication extends Application {
 
    final  String TAG = "MyApplication";
    List<Activity> activities = new ArrayList<>();
    private Activity currentActivity;//当前activity
    private boolean isInfront; //是否前台运行
    private static MyApplication application;
    public static MyApplication getApplication() {
        return application;
    }
 
    public Activity getCurrentActivity() {
        return currentActivity;
    }
 
    @Override
    public void onCreate() {
        super.onCreate();
        application = this;
        //CrashReport.initCrashReport(getApplicationContext(), "8d88679ae9", false);//注册bugly
        //设置全局的Header构建器
        SmartRefreshLayout.setDefaultRefreshHeaderCreator(new DefaultRefreshHeaderCreator() {
            @Override
            public RefreshHeader createRefreshHeader(Context context, RefreshLayout layout) {
                //layout.setPrimaryColorsId(R.color.colorPrimary, android.R.color.white);//全局设置主题颜色
                return new ClassicsHeader(context);//.setTimeFormat(new DynamicTimeFormat("更新于 %s"));//指定为经典Header,默认是 贝塞尔雷达Header
            }
        });
        //设置全局的Footer构建器
        SmartRefreshLayout.setDefaultRefreshFooterCreator(new DefaultRefreshFooterCreator() {
            @Override
            public RefreshFooter createRefreshFooter(Context context, RefreshLayout layout) {
                //指定为经典Footer,默认是 BallPulseFooter
                return new ClassicsFooter(context).setDrawableSize(20);
            }
        });
        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
            @Override
            public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) {
                MyLog.d(TAG,"onActivityCreated "+activity.getClass().getSimpleName());
                if(!activities.contains(activity)){
                    activities.add(activity);
                }
            }
 
            @Override
            public void onActivityStarted(@NonNull Activity activity) {
                MyLog.d(TAG,"onActivityStarted "+activity.getClass().getSimpleName());
                currentActivity = activity;
            }
 
            @Override
            public void onActivityResumed(@NonNull Activity activity) {
                MyLog.d(TAG,"onActivityResumed "+activity.getClass().getSimpleName());
                currentActivity = activity;
                isInfront = true;
            }
 
            @Override
            public void onActivityPaused(@NonNull Activity activity) {
                MyLog.d(TAG,"onActivityPaused "+activity.getClass().getSimpleName());
 
            }
 
            @Override
            public void onActivityStopped(@NonNull Activity activity) {
                MyLog.d(TAG,"onActivityStopped "+activity.getClass().getSimpleName());
 
            }
 
            @Override
            public void onActivitySaveInstanceState(@NonNull Activity activity, @NonNull Bundle bundle) {
                MyLog.d(TAG,"onActivitySaveInstanceState "+activity.getClass().getSimpleName());
                isInfront = false;
 
            }
 
            @Override
            public void onActivityDestroyed(@NonNull Activity activity) {
                MyLog.d(TAG,"onActivityDestroyed "+activity.getClass().getSimpleName());
                if(activities.contains(activity)){
                    activities.remove(activity);
                }
            }
        });
    }
 
    /**
     * 退出程序
     */
    public void quitApp(){
        for(Activity activity:activities){
            activity.finish();
        }
        System.exit(0);
    }
 
    public void clearActivities(){
        for(Activity activity:activities){
            /*if(activity instanceof LoginActivity){
                continue;
            }*/
            activity.finish();
        }
    }
 
    public boolean isInfront(){
        return isInfront;
    }
}