Просмотр исходного кода

后台服务初始化APP设置

raomeng 8 лет назад
Родитель
Сommit
6edbfc85cf

+ 3 - 3
WeiChat/version.properties

@@ -1,5 +1,5 @@
-#Fri Jan 05 14:24:50 CST 2018
-debugName=388
+#Fri Jan 05 17:40:05 CST 2018
+debugName=392
 versionName=624
-debugCode=388
+debugCode=392
 versionCode=163

+ 12 - 98
app_core/common/src/main/java/com/core/app/MyApplication.java

@@ -6,22 +6,14 @@ import android.graphics.Bitmap;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.Environment;
-import android.os.Handler;
-import android.os.StrictMode;
 import android.support.multidex.MultiDex;
 import android.text.TextUtils;
 import android.util.Log;
 
 import com.android.volley.RequestQueue;
 import com.android.volley.toolbox.Volley;
-import com.baidu.mapapi.SDKInitializer;
 import com.common.config.BaseApplication;
 import com.common.config.BaseConfig;
-import com.common.preferences.PreferenceUtils;
-import com.common.preferences.SharedUtil;
-import com.core.db.DBOpenHelper;
-import com.core.db.DatabaseManager;
-import com.core.db.SQLiteHelper;
 import com.core.model.ConfigBean;
 import com.core.model.User;
 import com.core.net.NetWorkObservable;
@@ -29,10 +21,7 @@ import com.core.net.location.BdLocationHelper;
 import com.core.net.ssl.AuthImageDownloader;
 import com.core.net.utils.NetUtils;
 import com.core.net.volley.FastVolley;
-import com.core.utils.CommonUtil;
-import com.facebook.stetho.Stetho;
-import com.iflytek.cloud.SpeechConstant;
-import com.iflytek.cloud.SpeechUtility;
+import com.core.service.InitializeService;
 import com.lidroid.xutils.HttpUtils;
 import com.nostra13.universalimageloader.cache.disc.impl.TotalSizeLimitedDiscCache;
 import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
@@ -43,19 +32,11 @@ import com.nostra13.universalimageloader.core.DisplayImageOptions;
 import com.nostra13.universalimageloader.core.ImageLoader;
 import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
 import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
-import com.tencent.mm.opensdk.openapi.IWXAPI;
-import com.tencent.mm.opensdk.openapi.WXAPIFactory;
-import com.umeng.analytics.MobclickAgent;
-import com.umeng.socialize.Config;
-import com.umeng.socialize.PlatformConfig;
-import com.uuzuche.lib_zxing.activity.ZXingLibrary;
 
 import org.apache.http.cookie.Cookie;
 
 import java.io.File;
 
-import cat.ereza.customactivityoncrash.CustomActivityOnCrash;
-
 /**
  * Created by Arison on 2017/8/25.
  */
@@ -118,65 +99,25 @@ public class MyApplication extends BaseApplication {
 
     @Override
     public void initConfig() throws Exception {
-        Stetho.initializeWithDefaults(this);
-        SpeechUtility.createUtility(this, SpeechConstant.APPID + "=5876dc99");
-        //自定义闪退页面初始化
-        CustomActivityOnCrash.install(this);
-        //设置ErrorActivity在后台启动,默认为true
-        CustomActivityOnCrash.setLaunchErrorActivityWhenInBackground(true);
-        //设置展示详细错误信息,默认为true
-        CustomActivityOnCrash.setShowErrorDetails(true);
-        //启用APP Restart,默认为true
-        CustomActivityOnCrash.setEnableAppRestart(true);
-        //设置重新启动的activity
-        //  CustomActivityOnCrash.setRestartActivityClass(SplashActivity.class);
-        Config.REDIRECT_URL = "http://sns.whalecloud.com/sina2/callback";
+        //后台服务初始化application
+        InitializeService.initApplication(this);
+
         INSTANCE = this;
-        ZXingLibrary.initDisplayOpinion(this);
         mRequestQueue = Volley.newRequestQueue(this);
 
         mHttpUtils = new HttpUtils();
         configHttpUtils();
 
-        SharedUtil.init(this);
-        initShareAPI();
-
-        initWxPay(this);
-        //  CrashReport.initCrashReport(getApplicationContext(), "900050585", false);
-        PreferenceUtils.putBoolean(this, Constants.IS_NOTIFICATION, false);//不进行通知
-        new Handler().postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                //定位场景设置
-                MobclickAgent.setScenarioType(MyApplication.this, MobclickAgent.EScenarioType.E_UM_NORMAL);
-                initUmengStatistics();
-                SDKInitializer.initialize(getApplicationContext());
-                // 初始化数据库
-                SQLiteHelper.copyDatabaseFile(getApplicationContext());
-                // 初始化定位
-                getBdLocationHelper();
-                // 初始化App目录
-                initAppDir();
-                // 初始化图片加载
-                initImageLoader();
+        // 初始化定位
+        getBdLocationHelper();
+        // 初始化App目录
+        initAppDir();
+        // 初始化图片加载
+        initImageLoader();
 
-            }
-        }, 1);
-        if (AppConfig.DEBUG) {
-            Log.d(AppConfig.TAG, "MyApplication onCreate");
-        }
-        if (AppConfig.DEBUG) {
-            StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectAll().penaltyLog().build());
-            StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll().penaltyLog().build());
-        }
         // 初始化网络监听
         mNetWorkObservable = new NetWorkObservable(this);
-        initErpDB();
-    /*    try {
-            com.core.app.Constants.cleanRed(this);
-        } catch (PackageManager.NameNotFoundException e) {
-            e.printStackTrace();
-        }*/
+
         registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
             @Override
             public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
@@ -227,28 +168,6 @@ public class MyApplication extends BaseApplication {
         android.os.Process.killProcess(android.os.Process.myPid());
     }
 
-    private void initErpDB() {
-        DatabaseManager.initializeInstance(DBOpenHelper.getInstance(this));
-    }
-
-
-    public void initShareAPI() {
-        PlatformConfig.setWeixin("wx2539cc96bf158e00", "b057aa3e807ba7c505a2f03cc541bbf6");
-        PlatformConfig.setSinaWeibo("493318722", "7def652c3683603b08bab87d34b1f944");
-        PlatformConfig.setQQZone("1104894295", "Nk8zMIz5YSqwRQ1F");
-        Config.IsToastTip = false;
-    }
-
-    private void initUmengStatistics() {
-        MobclickAgent.UMAnalyticsConfig config = new MobclickAgent.UMAnalyticsConfig(this, "57ea27bb67e58e088c003bbf",
-                "baidu", MobclickAgent.EScenarioType.E_UM_NORMAL);
-        MobclickAgent.startWithConfigure(config);
-        if (!CommonUtil.isReleaseVersion()) {//当前为开发版本时候不需要上传友盟
-            MobclickAgent.setCatchUncaughtExceptions(false);
-        }
-    }
-
-
     private void configHttpUtils() {
         mHttpUtils.configRequestThreadPoolSize(4);
         mHttpUtils.configRequestRetryCount(3);
@@ -338,7 +257,7 @@ public class MyApplication extends BaseApplication {
 
         mAvatarRoundImageOptions = new DisplayImageOptions.Builder()
                 .bitmapConfig(Bitmap.Config.RGB_565).
-                cacheInMemory(true)
+                        cacheInMemory(true)
                 .cacheOnDisc(true)
 //                .displayer(new RoundedBitmapDisplayer(10))
                 .resetViewBeforeLoading(true)
@@ -392,11 +311,6 @@ public class MyApplication extends BaseApplication {
 
     }
 
-    public void initWxPay(Context context) {
-        IWXAPI wxApi = WXAPIFactory.createWXAPI(context, Constants.WXPAY_APPID, false);
-        wxApi.registerApp(Constants.WXPAY_APPID);
-    }
-
     public void setConfig(AppConfig config) {
         mConfig = config;
     }

+ 132 - 0
app_core/common/src/main/java/com/core/service/InitializeService.java

@@ -0,0 +1,132 @@
+package com.core.service;
+
+import android.app.IntentService;
+import android.content.Context;
+import android.content.Intent;
+import android.os.StrictMode;
+import android.support.annotation.Nullable;
+import android.util.Log;
+
+import com.baidu.mapapi.SDKInitializer;
+import com.common.preferences.PreferenceUtils;
+import com.common.preferences.SharedUtil;
+import com.core.app.AppConfig;
+import com.core.app.Constants;
+import com.core.db.DBOpenHelper;
+import com.core.db.DatabaseManager;
+import com.core.db.SQLiteHelper;
+import com.core.utils.CommonUtil;
+import com.facebook.stetho.Stetho;
+import com.iflytek.cloud.SpeechConstant;
+import com.iflytek.cloud.SpeechUtility;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.umeng.analytics.MobclickAgent;
+import com.umeng.socialize.Config;
+import com.umeng.socialize.PlatformConfig;
+import com.uuzuche.lib_zxing.activity.ZXingLibrary;
+
+import cat.ereza.customactivityoncrash.CustomActivityOnCrash;
+
+/**
+ * @author RaoMeng
+ * @describe 初始化应用配置
+ * @date 2018/1/5 16:55
+ */
+
+public class InitializeService extends IntentService {
+    private static final String ACTION_INIT_APPLICATION = "initApplication";
+
+    private static Context mContext;
+
+    public InitializeService() {
+        super("InitializeService");
+    }
+
+    public static void initApplication(Context context) {
+        mContext = context;
+        Intent intent = new Intent(context, InitializeService.class);
+        intent.setAction(ACTION_INIT_APPLICATION);
+        context.startService(intent);
+    }
+
+    @Override
+    protected void onHandleIntent(@Nullable Intent intent) {
+        if (intent != null) {
+            String action = intent.getAction();
+            if (ACTION_INIT_APPLICATION.equals(action)) {
+                initApplication();
+            }
+        }
+    }
+
+    private void initApplication() {
+        Stetho.initializeWithDefaults(this);
+        SpeechUtility.createUtility(this, SpeechConstant.APPID + "=5876dc99");
+        //自定义闪退页面初始化
+        CustomActivityOnCrash.install(this);
+        //设置ErrorActivity在后台启动,默认为true
+        CustomActivityOnCrash.setLaunchErrorActivityWhenInBackground(true);
+        //设置展示详细错误信息,默认为true
+        CustomActivityOnCrash.setShowErrorDetails(true);
+        //启用APP Restart,默认为true
+        CustomActivityOnCrash.setEnableAppRestart(true);
+        //设置重新启动的activity
+        //  CustomActivityOnCrash.setRestartActivityClass(SplashActivity.class);
+        Config.REDIRECT_URL = "http://sns.whalecloud.com/sina2/callback";
+        ZXingLibrary.initDisplayOpinion(this);
+        SharedUtil.init(this);
+
+        initShareAPI();
+
+        initWxPay(this);
+        //  CrashReport.initCrashReport(getApplicationContext(), "900050585", false);
+        PreferenceUtils.putBoolean(this, Constants.IS_NOTIFICATION, false);//不进行通知
+
+        if (AppConfig.DEBUG) {
+            Log.d(AppConfig.TAG, "MyApplication onCreate");
+        }
+        if (AppConfig.DEBUG) {
+            StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectAll().penaltyLog().build());
+            StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll().penaltyLog().build());
+        }
+        initErpDB();
+
+        //定位场景设置
+        MobclickAgent.setScenarioType(mContext, MobclickAgent.EScenarioType.E_UM_NORMAL);
+        initUmengStatistics();
+        SDKInitializer.initialize(getApplicationContext());
+        // 初始化数据库
+        SQLiteHelper.copyDatabaseFile(getApplicationContext());
+        /*try {
+            com.core.app.Constants.cleanRed(this);
+        } catch (PackageManager.NameNotFoundException e) {
+            e.printStackTrace();
+        }*/
+    }
+
+    public void initShareAPI() {
+        PlatformConfig.setWeixin("wx2539cc96bf158e00", "b057aa3e807ba7c505a2f03cc541bbf6");
+        PlatformConfig.setSinaWeibo("493318722", "7def652c3683603b08bab87d34b1f944");
+        PlatformConfig.setQQZone("1104894295", "Nk8zMIz5YSqwRQ1F");
+        Config.IsToastTip = false;
+    }
+
+    public void initWxPay(Context context) {
+        IWXAPI wxApi = WXAPIFactory.createWXAPI(context, Constants.WXPAY_APPID, false);
+        wxApi.registerApp(Constants.WXPAY_APPID);
+    }
+
+    private void initErpDB() {
+        DatabaseManager.initializeInstance(DBOpenHelper.getInstance(this));
+    }
+
+    private void initUmengStatistics() {
+        MobclickAgent.UMAnalyticsConfig config = new MobclickAgent.UMAnalyticsConfig(this, "57ea27bb67e58e088c003bbf",
+                "baidu", MobclickAgent.EScenarioType.E_UM_NORMAL);
+        MobclickAgent.startWithConfigure(config);
+        if (!CommonUtil.isReleaseVersion()) {//当前为开发版本时候不需要上传友盟
+            MobclickAgent.setCatchUncaughtExceptions(false);
+        }
+    }
+}