| | |
| | | package com.tejia.lijin.app; |
| | | |
| | | import android.app.Activity; |
| | | import android.app.ActivityManager; |
| | | import android.app.Application; |
| | | import android.content.ComponentName; |
| | | import android.content.Context; |
| | | import android.content.Intent; |
| | | import android.os.Build; |
| | | import android.os.Bundle; |
| | | import android.os.Process; |
| | | |
| | | import androidx.multidex.MultiDex; |
| | | import de.greenrobot.event.EventBus; |
| | | |
| | | import android.util.Log; |
| | | import android.widget.Toast; |
| | | |
| | | import com.alibaba.baichuan.android.trade.AlibcTradeSDK; |
| | | import com.alibaba.baichuan.android.trade.callback.AlibcTradeInitCallback; |
| | | import com.alibaba.baichuan.trade.biz.core.taoke.AlibcTaokeParams; |
| | | import com.bytedance.sdk.openadsdk.LocationProvider; |
| | | import com.bytedance.sdk.openadsdk.TTAdConfig; |
| | | import com.bytedance.sdk.openadsdk.TTAdConstant; |
| | | import com.bytedance.sdk.openadsdk.TTAdSdk; |
| | | import com.bytedance.sdk.openadsdk.TTCustomController; |
| | | import com.kepler.jd.Listener.AsyncInitListener; |
| | | import com.kepler.jd.login.KeplerApiManager; |
| | | import com.qq.e.comm.managers.GDTADManager; |
| | | import com.qq.e.comm.managers.GDTAdSdk; |
| | | import com.qq.e.comm.managers.setting.GlobalSetting; |
| | | import com.tejia.lijin.app.ui.SplashActivity; |
| | | import com.tejia.lijin.app.util.Constant; |
| | | import com.tejia.lijin.app.util.ad.TTAdManagerHolder; |
| | | import com.tejia.lijin.app.util.ui.GoodsDetailUtil; |
| | | import com.tejia.lijin.app.util.user.UserUtil; |
| | | import com.tencent.mm.opensdk.openapi.IWXAPI; |
| | | import com.tencent.mm.opensdk.openapi.WXAPIFactory; |
| | | import com.umeng.analytics.MobclickAgent; |
| | | import com.umeng.commonsdk.UMConfigure; |
| | | import com.wpc.library.util.ManifestDataUtil; |
| | | import com.wpc.library.util.NetUtils; |
| | | import com.tejia.lijin.app.service.NetworkStateService; |
| | | import com.tejia.lijin.app.util.CrashHandler; |
| | | import com.tejia.lijin.app.util.PushUtil; |
| | | import com.tejia.lijin.app.util.TestUtil; |
| | | import com.tejia.lijin.app.util.ToolUtil; |
| | | import com.wpc.library.util.common.DeviceUtil; |
| | | |
| | | import java.lang.reflect.Field; |
| | | import java.lang.reflect.Method; |
| | |
| | | |
| | | public class ShoppingApplication extends Application { |
| | | |
| | | private static final String TAG = "ShoppingApplication"; |
| | | public static ShoppingApplication application = null; |
| | | public static boolean isJDInit = false; |
| | | |
| | | public static boolean init = false; |
| | | |
| | | // public Tencent mTencent; |
| | | |
| | | @Override |
| | | public void onCreate() { |
| | | super.onCreate(); |
| | | Log.i(TAG, "onCreate"); |
| | | application = this; |
| | | disableAPIDialog(); |
| | | //测试注入用户信息 |
| | | TestUtil.pourIntoUserInfo(getApplicationContext()); |
| | | initAD(); |
| | | if (UserUtil.isAgreeUserProtocol(application)) { |
| | | init(application); |
| | | } |
| | | } |
| | | |
| | | |
| | | public static void init(final Application application) { |
| | | init = true; |
| | | GoodsDetailUtil.initInstallTime(application); |
| | | initAD(application); |
| | | //进程名字 |
| | | String processName = ToolUtil.getProcessName(this, android.os.Process.myPid()); |
| | | String processName = ToolUtil.getProcessName(application, android.os.Process.myPid()); |
| | | if (processName != null) {//防止重复创建 |
| | | boolean defaultProcess = processName.equals(getPackageName());//主进程名字 |
| | | boolean defaultProcess = processName.equals(application.getPackageName());//主进程名字 |
| | | if (!defaultProcess) {//不是主进程 阻止往下执行 |
| | | return; |
| | | } |
| | | } |
| | | |
| | | MultiDex.install(this); |
| | | MultiDex.install(application); |
| | | if (BuXinConstant.DEBUG) {//异常信息收集 |
| | | CrashHandler.getInstance().init(getApplicationContext()); |
| | | CrashHandler.getInstance().init(application); |
| | | } |
| | | |
| | | UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE, null); |
| | | |
| | | application = this; |
| | | String channel = ManifestDataUtil.getAppMetaData(application, "UMENG_CHANNEL"); |
| | | UMConfigure.init(application, application.getResources().getString(R.string.umeng_key), channel, UMConfigure.DEVICE_TYPE_PHONE, null); |
| | | UMConfigure.setEncryptEnabled(true); |
| | | MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO); |
| | | |
| | | if (!AlibcTradeSDK.initState.isInitialized() && !AlibcTradeSDK.initState.isInitializing()) |
| | | AlibcTradeSDK.asyncInit(this, new AlibcTradeInitCallback() { |
| | | AlibcTradeSDK.asyncInit(application, new AlibcTradeInitCallback() { |
| | | @Override |
| | | public void onSuccess() { |
| | | // AlibcTradeSDK.setTaokeParams(new AlibcTaokeParams(BuXinConstant.BAICHUAN_PID, "", null)); |
| | |
| | | } |
| | | }); |
| | | |
| | | PushUtil.inintPush(this); |
| | | ToolUtil.thirdPartySDK();//初始化第三方SDK |
| | | if (NetUtils.isNetConnected(getApplicationContext())) { |
| | | initJd(this); |
| | | initWX(); |
| | | if (NetUtils.isNetConnected(application)) { |
| | | initJd(application); |
| | | } else { |
| | | try { |
| | | startService(new Intent(getApplicationContext(), NetworkStateService.class)); |
| | | application.startService(new Intent(application, NetworkStateService.class)); |
| | | } catch (Exception e) { |
| | | |
| | | } |
| | | } |
| | | |
| | | application.registerActivityLifecycleCallbacks(MyActivityLifecycleCallbacks.getInstance()); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 初始化微信SDK |
| | | */ |
| | | private static void initWX() { |
| | | //AppConst.WEIXIN.APP_ID是指你应用在微信开放平台上的AppID,记得替换。 |
| | | ShoppingApplication.application.mWxApi = WXAPIFactory.createWXAPI(ShoppingApplication.application, Constant.WX_APP_ID, false); |
| | | // 将该app注册到微信 |
| | | ShoppingApplication.application.mWxApi.registerApp(Constant.WX_APP_ID); |
| | | } |
| | | |
| | | /** |
| | | * 反射 禁止弹窗 |
| | | */ |
| | | private void disableAPIDialog(){ |
| | | if (Build.VERSION.SDK_INT < 28)return; |
| | | private void disableAPIDialog() { |
| | | if (Build.VERSION.SDK_INT < 28) return; |
| | | try { |
| | | Class clazz = Class.forName("android.app.ActivityThread"); |
| | | Method currentActivityThread = clazz.getDeclaredMethod("currentActivityThread"); |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 京东联盟 |
| | | * |
| | | * @param application |
| | | */ |
| | | public static void initJd(Application application) { |
| | | //京东联盟 |
| | | final String appKey = "0370d4db71dc8d24581e59cabda231f1"; //"7ba8e06b7d6fde3d6bd5db4b0026ecd7"; |
| | | final String appSecret = "21d22579c7c5487c8d73bff2b82b01cc"; //"fb49bc6ecac5458ba5394fc2969d7c56"; |
| | | final String appKey = Constant.JD_APP_KEY; |
| | | final String appSecret = Constant.JD_APP_SECRET; |
| | | KeplerApiManager.asyncInitSdk(application, appKey, appSecret, new AsyncInitListener() { |
| | | @Override |
| | | public void onSuccess() { |
| | | Log.i(TAG, "京东初始化成功"); |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure() { |
| | | Log.i(TAG, "京东初始化失败"); |
| | | } |
| | | |
| | | }); |
| | |
| | | return false; |
| | | } |
| | | |
| | | private void initAD(){ |
| | | GDTADManager.getInstance().initWith(this,"1110527324"); |
| | | /** |
| | | * 穿山甲广告初始化 |
| | | */ |
| | | private static void initAD(final Context context) { |
| | | try { |
| | | GlobalSetting.setEnableCollectAppInstallStatus(false); |
| | | GDTAdSdk.init(application, Constant.GDT_APP_ID); |
| | | |
| | | TTAdManagerHolder.init(context, new TTAdSdk.InitCallback() { |
| | | @Override |
| | | public void success() { |
| | | Log.i(TAG, "穿山甲初始化成功"); |
| | | } |
| | | |
| | | @Override |
| | | public void fail(int i, String s) { |
| | | Log.e(TAG, "穿山甲初始化失败:"+s); |
| | | } |
| | | }); |
| | | } catch (Exception e) { |
| | | |
| | | } |
| | | } |
| | | |
| | | public IWXAPI mWxApi; |
| | | |
| | | |
| | | static class MyActivityLifecycleCallbacks implements Application.ActivityLifecycleCallbacks { |
| | | private int mFinalCount; |
| | | private static MyActivityLifecycleCallbacks instance; |
| | | |
| | | public static MyActivityLifecycleCallbacks getInstance() { |
| | | if (instance == null) { |
| | | instance = new MyActivityLifecycleCallbacks(); |
| | | } |
| | | return instance; |
| | | } |
| | | |
| | | @Override |
| | | public void onActivityCreated(Activity activity, Bundle savedInstanceState) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onActivityStarted(Activity activity) { |
| | | mFinalCount++; |
| | | //如果mFinalCount ==1,说明是从后台到前台 |
| | | if (mFinalCount == 1) { |
| | | Log.e(TAG, "应用从后台切换到前台"); |
| | | // 进入前台 改为热启动 |
| | | //判断当前activity |
| | | ActivityManager am = (ActivityManager) activity.getSystemService(ACTIVITY_SERVICE); |
| | | ComponentName cn = am.getRunningTasks(1).get(0).topActivity; |
| | | if (!cn.getClassName().equalsIgnoreCase(SplashActivity.class.getName())) { |
| | | |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onActivityResumed(Activity activity) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onActivityPaused(Activity activity) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onActivityStopped(Activity activity) { |
| | | mFinalCount--; |
| | | //如果mFinalCount ==0,说明是前台到后台 |
| | | if (mFinalCount == 0) { |
| | | Log.e(TAG, "应用从前台切换到后台"); |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onActivitySaveInstanceState(Activity activity, Bundle outState) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onActivityDestroyed(Activity activity) { |
| | | |
| | | } |
| | | } |
| | | |
| | | } |