Files
Android-WaterProject/app/src/main/java/com/ckkj/water/MyApplication.java
fengjignqi 5dae94788c 优化
2026-07-14 18:00:38 +08:00

211 lines
7.2 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.ckkj.water;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.Application;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.ckkj.water.mine.entity.MineUserInfoBean;
import com.google.gson.Gson;
import com.ckkj.water.network.NetWorkManager;
import com.ckkj.water.utils.dataUtil.SharePreUtil;
import com.ckkj.water.utils.manager.LanguageManager;
import com.ckkj.water.utils.manager.ThemeManager;
import com.ckkj.water.utils.manager.WaterUserInfoManager;
import java.util.List;
import me.jessyan.autosize.AutoSizeConfig;
public class MyApplication extends Application {
private static Context context;
private static Activity mLaunchActivity;
private static Activity currentActivity;
private static MyApplication instance;
private String TAG = "DINGDINGCAR-----";
//口令跳转
public static boolean hasJumped = false;
public static void setCurrentActivity(Activity activity) {
mLaunchActivity = activity;
}
public static Activity getLaunchActivity() {
return mLaunchActivity;
}
public static synchronized boolean canJump() {
if (!hasJumped) {
hasJumped = true;
return true;
}
return false;
}
public void initializeUmengSDK(){
//预初始化
// UMConfigure.preInit(context, AppConfig.UMENG_APP_KEY, "Android");
// UMConfigure.init(this,"5a12384aa40fa3551f0001d1"
// ,"umeng",UMConfigure.DEVICE_TYPE_PHONE,"");
// //日志开关
// UMConfigure.setLogEnabled(true);
// //科大讯飞 该段初始化代码必须要放在用户还同意隐私协议政策之后
// // 将“12345678”替换成您申请的APPID申请地址http://www.xfyun.cn
// // 请勿在“=”与appid之间添加任何空字符或者转义符
// SpeechUtility.createUtility(context, SpeechConstant.APPID +"=322c51d1");
//初始化厂商推送
}
@Override
public void onCreate() {
super.onCreate();
instance = this;
context = getApplicationContext();
// 恢复应用语言设置
applyStoredLocale();
// 检查并设置默认主题色(如果之前没有设置过,默认设为白色主题)
applyDefaultTheme();
boolean isUserAgreed = SharePreUtil.getBoolean(ConstantUtil.SHARE_PRE_NAME,context,ConstantUtil.PRIVACY_POLICY_AGREED);
if(isUserAgreed){
initializeUmengSDK();
}
NetWorkManager.getInstance().init(this);
AppConfig.USER_LOGIN = SharePreUtil.getBoolean(ConstantUtil.SHARE_PRE_NAME,context,ConstantUtil.USER_LOGIN);
AppConfig.USER_TOKEN = SharePreUtil.getString(ConstantUtil.SHARE_PRE_NAME,context,ConstantUtil.USER_TOKEN);
//单位JSON
String userInfoJson = SharePreUtil.getString(ConstantUtil.SHARE_PRE_NAME,context, ConstantUtil.USER_INFO_JSON_CONTENT);
if(!TextUtils.isEmpty(userInfoJson)){
MineUserInfoBean entity = new Gson().fromJson(userInfoJson, MineUserInfoBean.class);
WaterUserInfoManager.getInstance().setUserInfo(entity);
}
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
@Override
public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle bundle) {
}
@Override
public void onActivityStarted(@NonNull Activity activity) {
}
@Override
public void onActivityResumed(@NonNull Activity activity) {
if(activity != null){
Log.i("currentAct", "当前所在页面===============" + activity.getLocalClassName()+ "=======================");
}
}
@Override
public void onActivityPaused(@NonNull Activity activity) {
}
@Override
public void onActivityStopped(@NonNull Activity activity) {
}
@Override
public void onActivitySaveInstanceState(@NonNull Activity activity, @NonNull Bundle bundle) {
}
@Override
public void onActivityDestroyed(@NonNull Activity activity) {
}
});
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
@Override
public void onActivityResumed(Activity activity) {
currentActivity = activity;
}
@Override
public void onActivityPaused(Activity activity) {
if (currentActivity == activity) {
currentActivity = null;
}
}
// 其他回调方法可以留空
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
currentActivity = activity;
}
@Override
public void onActivityStarted(Activity activity) {
currentActivity = activity;
}
@Override
public void onActivityStopped(Activity activity) {}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {}
@Override
public void onActivityDestroyed(Activity activity) {}
});
// AutoSizeConfig.getInstance()
// // 是否使用设备真实尺寸
// .setUseDeviceSize(true)
// // 是否支持 fragment
// .setCustomFragment(true);
android.util.Log.e("TEST", "hello");
}
private boolean shouldInit() {
ActivityManager am = ((ActivityManager) getSystemService(Context.ACTIVITY_SERVICE));
List<ActivityManager.RunningAppProcessInfo> processInfos = am.getRunningAppProcesses();
String mainProcessName = getApplicationInfo().processName;
int myPid = android.os.Process.myPid();
for (ActivityManager.RunningAppProcessInfo info : processInfos) {
if (info.pid == myPid && mainProcessName.equals(info.processName)) {
return true;
}
}
return false;
}
public static Activity getCurrentActivity() {
return instance.currentActivity;
}
public static Context getContext() {
return context;
}
/**
* 应用启动时恢复保存的语言设置
* 使用 AppCompatDelegate.setApplicationLocales() API
*/
private void applyStoredLocale() {
LanguageManager.applyStoredLocale();
}
/**
* 检查并设置默认主题色
* 如果之前没有设置过主题(默认为 MODE_FOLLOW_SYSTEM则设置为白色主题MODE_LIGHT
*/
private void applyDefaultTheme() {
int currentTheme = ThemeManager.getCurrentTheme(context);
if (currentTheme == ThemeManager.MODE_FOLLOW_SYSTEM) {
ThemeManager.setCurrentTheme(context, ThemeManager.MODE_LIGHT);
ThemeManager.applyTheme(ThemeManager.MODE_LIGHT);
} else {
ThemeManager.applyTheme(currentTheme);
}
}
}