| | |
| | | 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 com.kepler.jd.Listener.AsyncInitListener; |
| | | import com.kepler.jd.login.KeplerApiManager; |
| | | import com.qq.e.comm.managers.GDTADManager; |
| | | import com.tejia.lijin.app.ui.SplashActivity; |
| | | import com.tejia.lijin.app.util.Constant; |
| | | 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.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; |
| | | |
| | |
| | | |
| | | public class ShoppingApplication extends Application { |
| | | |
| | | private static final String TAG = "ShoppingApplication"; |
| | | public static ShoppingApplication application = null; |
| | | public static boolean isJDInit = false; |
| | | |
| | |
| | | @Override |
| | | public void onCreate() { |
| | | super.onCreate(); |
| | | application = this; |
| | | disableAPIDialog(); |
| | | //测试注入用户信息 |
| | | TestUtil.pourIntoUserInfo(getApplicationContext()); |
| | | initAD(); |
| | | if (UserUtil.isAgreeUserProtocol(application)) { |
| | | init(application); |
| | | } |
| | | } |
| | | |
| | | |
| | | public static void init(final Application application) { |
| | | 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; |
| | | UMConfigure.init(application, UMConfigure.DEVICE_TYPE_PHONE, null); |
| | | |
| | | 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 |
| | | initWX(); |
| | | if (NetUtils.isNetConnected(getApplicationContext())) { |
| | | initJd(this); |
| | | 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()); |
| | | |
| | | } |
| | | |
| | |
| | | KeplerApiManager.asyncInitSdk(application, appKey, appSecret, new AsyncInitListener() { |
| | | @Override |
| | | public void onSuccess() { |
| | | Log.i(TAG, "京东初始化成功"); |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure() { |
| | | Log.i(TAG, "京东初始化失败"); |
| | | } |
| | | |
| | | }); |
| | |
| | | /** |
| | | * 穿山甲广告初始化 |
| | | */ |
| | | private void initAD() { |
| | | GDTADManager.getInstance().initWith(this, Constant.GDT_APP_ID); |
| | | private static void initAD(Context context) { |
| | | GDTADManager.getInstance().initWith(context, Constant.GDT_APP_ID); |
| | | |
| | | TTAdSdk.init(getApplicationContext(), |
| | | TTAdSdk.init(context, |
| | | new TTAdConfig.Builder() |
| | | .appId(Constant.CSJ_APP_ID) |
| | | .useTextureView(true) //默认使用SurfaceView播放视频广告,当有SurfaceView冲突的场景,可以使用TextureView |
| | |
| | | |
| | | 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) { |
| | | |
| | | } |
| | | } |
| | | |
| | | } |