package com.appjishu.starzone.app; import android.app.Activity; import android.app.ActivityManager; import android.app.Application; import android.content.Context; import android.content.ContextWrapper; import android.os.Handler; import android.os.Message; import android.os.Process; import android.text.TextUtils; import android.util.Log; import android.widget.Toast; import com.appjishu.starzone.activity.ChatActivity; import com.appjishu.starzone.activity.ChatWindowActivity; import com.appjishu.starzone.constant.MiSdkConstant; import com.appjishu.starzone.model.ChatMsg; import com.appjishu.starzone.model.LoginResult; import com.appjishu.starzone.singleton.GsonSingleton; import com.appjishu.starzone.util.SharedPreferencesMyUtil; import com.razerdp.github.com.common.manager.LocalHostManager; import com.xiaomi.channel.commonutils.logger.LoggerInterface; import com.xiaomi.mipush.sdk.Logger; import com.xiaomi.mipush.sdk.MiPushClient; //import cn.bmob.v3.Bmob; //import cn.bmob.v3.BmobConfig; import java.util.List; import java.util.Map; import razerdp.github.com.lib.api.AppContext; import razerdp.github.com.lib.manager.localphoto.LocalPhotoManager; import static com.appjishu.starzone.constant.MiSdkConstant.APP_KEY; /** * Created by liushaoming on 2016/10/26. * <p> * app */ public class MyApp extends Application { // 此TAG在adb logcat中检索自己所需要的信息, 只需在命令行终端输入 adb logcat | grep // com.xiaomi.mipushdemo public static final String TAG = "com.appjishu.starzone"; public static MyApp getInstance() { return instance; } private static MyApp instance; private static DemoHandler sHandler = null; private static ChatWindowActivity mChatWindowActivity = null; @Override public void onCreate() { super.onCreate(); AppContext.initARouter(); initLocalHostInfo(); LocalPhotoManager.INSTANCE.registerContentObserver(null); initMiSdk(); instance = this; } private void initLocalHostInfo() { LocalHostManager.INSTANCE.init(); } public void initMiSdk() { // 注册push服务,注册成功后会向DemoMessageReceiver发送广播 // 可以从DemoMessageReceiver的onCommandResult方法中MiPushCommandMessage对象参数中获取注册信息 if (shouldInit()) { MiPushClient.registerPush(this, MiSdkConstant.APP_ID, APP_KEY); } // MiPushClient.subscribe(this, MiSdkConstant.TOPIC_ALL, null); LoggerInterface newLogger = new LoggerInterface() { @Override public void setTag(String tag) { // ignore } @Override public void log(String content, Throwable t) { Log.d(TAG, content, t); } @Override public void log(String content) { Log.d(TAG, content); } }; Logger.setLogger(this, newLogger); if (sHandler == null) { sHandler = new DemoHandler(getApplicationContext()); } } private boolean shouldInit() { ActivityManager am = ((ActivityManager) getSystemService(Context.ACTIVITY_SERVICE)); List<ActivityManager.RunningAppProcessInfo> processInfos = am.getRunningAppProcesses(); String mainProcessName = getPackageName(); int myPid = Process.myPid(); for (ActivityManager.RunningAppProcessInfo info : processInfos) { if (info.pid == myPid && mainProcessName.equals(info.processName)) { return true; } } return false; } public static void reInitPush(Context ctx) { MiPushClient.registerPush(ctx.getApplicationContext(), MiSdkConstant.APP_ID, MiSdkConstant.APP_KEY); } public static DemoHandler getHandler() { return sHandler; } public static class DemoHandler extends Handler { private Context context; public DemoHandler(Context context) { this.context = context; } @Override public void handleMessage(Message msg) { } } public static void setChatWindowActivity(ChatWindowActivity chatWindowActivity) { mChatWindowActivity = chatWindowActivity; } public void setAlias() { LoginResult loginResult = SharedPreferencesMyUtil.queryToken(this); if (loginResult != null) { long storedUserId = loginResult.getUserId(); if (storedUserId > 0) { MiPushClient.setAlias(this, storedUserId + "", null); } } } }