diff --git a/app/src/main/java/com/gh/base/BaseActivity.java b/app/src/main/java/com/gh/base/BaseActivity.java index c81ebaca94..a48c655380 100644 --- a/app/src/main/java/com/gh/base/BaseActivity.java +++ b/app/src/main/java/com/gh/base/BaseActivity.java @@ -93,8 +93,8 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - EventBus.getDefault().register(this); - ButterKnife.bind(this); + if (useEventBus()) EventBus.getDefault().register(this); + if (useButterKnife()) ButterKnife.bind(this); mEntrance = getIntent().getStringExtra(KEY_ENTRANCE); if (TextUtils.isEmpty(mEntrance)) { mEntrance = Constants.ENTRANCE_UNKNOWN; @@ -107,7 +107,7 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy @Override protected void onDestroy() { - EventBus.getDefault().unregister(this); + if (useEventBus()) EventBus.getDefault().unregister(this); mBaseHandler.removeCallbacksAndMessages(null); super.onDestroy(); } @@ -187,12 +187,12 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy protected void onResume() { super.onResume(); } - + /** * 此回调可用于确认当前 activity 已经执行了 finish() 方法并处于 isFinishing 状态 */ protected void onFinish() { - + } @Override @@ -245,4 +245,12 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy return StringUtils.buildString(entrance, "+(", path, ")"); } + protected boolean useEventBus() { + return true; + } + + protected boolean useButterKnife() { + return true; + } + } diff --git a/app/src/main/java/com/gh/common/PushManager.kt b/app/src/main/java/com/gh/common/PushManager.kt index 12dbae9f32..2fabc99816 100644 --- a/app/src/main/java/com/gh/common/PushManager.kt +++ b/app/src/main/java/com/gh/common/PushManager.kt @@ -8,6 +8,7 @@ import com.gh.common.exposure.meta.MetaUtil import com.gh.common.util.edit import com.gh.common.util.toJson import com.gh.common.util.toObject +import com.gh.common.util.tryWithDefaultCatch import com.gh.gamecenter.BuildConfig import com.gh.gamecenter.entity.AliasEntity import com.gh.gamecenter.retrofit.RetrofitManager @@ -35,33 +36,34 @@ object PushManager { @JvmStatic fun init(channel: String) { - //初始化友盟推送 - UMConfigure.init(mApplication, - Config.UMENG_APPKEY, channel, - UMConfigure.DEVICE_TYPE_PHONE, - Config.UMENG_MESSAGE_SECRET) + tryWithDefaultCatch { + //初始化友盟推送 + UMConfigure.init(mApplication, + Config.UMENG_APPKEY, channel, + UMConfigure.DEVICE_TYPE_PHONE, + Config.UMENG_MESSAGE_SECRET) - // 注册小米、华为和魅族通道 - MiPushRegistar.register(mApplication, Config.MIPUSH_APPID, Config.MIPUSH_APPKEY) - HuaWeiRegister.register(mApplication) - MeizuRegister.register(mApplication, BuildConfig.MEIZUPUSH_APPID, BuildConfig.MEIZUPUSH_APPKEY) + // 注册小米、华为和魅族通道 + MiPushRegistar.register(mApplication, Config.MIPUSH_APPID, Config.MIPUSH_APPKEY) + HuaWeiRegister.register(mApplication) + MeizuRegister.register(mApplication, BuildConfig.MEIZUPUSH_APPID, BuildConfig.MEIZUPUSH_APPKEY) - //友盟推送 - val pushAgent = PushAgent.getInstance(mApplication) - pushAgent.onAppStart() // 开启App统计 + //友盟推送 + val pushAgent = PushAgent.getInstance(mApplication) - //注册推送服务,每次调用register方法都会回调该接口 - registerDevice() + //注册推送服务,每次调用register方法都会回调该接口 + runOnIoThread { registerDevice() } - val aliasInSp = PreferenceManager.getDefaultSharedPreferences(mApplication).getString(SP_PUSH_ALIAS, "") - mPreviousAlias = aliasInSp?.toObject() + val aliasInSp = PreferenceManager.getDefaultSharedPreferences(mApplication).getString(SP_PUSH_ALIAS, "") + mPreviousAlias = aliasInSp?.toObject() - if (mPreviousAlias == null) { - getAndSetAlias() + if (mPreviousAlias == null) { + getAndSetAlias() + } + + // 完全自定义处理(透传) + pushAgent.setPushIntentServiceClass(GHUmengNotificationService::class.java) } - - // 完全自定义处理(透传) - pushAgent.setPushIntentServiceClass(GHUmengNotificationService::class.java) } private fun registerDevice() { diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index 1e870d06fc..a678807026 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -89,6 +89,7 @@ import com.lightgame.download.FileUtils; import com.lightgame.utils.AppManager; import com.tencent.bugly.beta.tinker.TinkerManager; import com.tencent.bugly.crashreport.CrashReport; +import com.umeng.message.PushAgent; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -140,7 +141,6 @@ public class MainActivity extends BaseActivity { public final static String SWITCH_TO_COMMUNITY = "switch_to_community"; public final static String SWITCH_TO_VIDEO = "switch_to_video"; - private final static String IS_SKIPPED = "is_skipped"; private final static String CURRENT_PAGE = "current_page"; private PackageViewModel mPackageViewModel; @@ -252,6 +252,8 @@ public class MainActivity extends BaseActivity { UpdateManager.getInstance(this).checkUpdate(true, null); // 初始化PlatformUtils PlatformUtils.getInstance(getApplicationContext()); + // 友盟记录启动 + PushAgent.getInstance(this).onAppStart(); }); @@ -841,6 +843,11 @@ public class MainActivity extends BaseActivity { } } + @Override + protected boolean useButterKnife() { + return false; + } + @Override public String getActivityNameInChinese() { return "游戏首页"; diff --git a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java index 9184dad0fe..d4387fd5f7 100644 --- a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java @@ -33,15 +33,12 @@ import com.gh.common.util.PackageUtils; import com.gh.common.util.PlatformUtils; import com.gh.common.util.SPUtils; import com.gh.common.util.TagUtils; -import com.gh.common.util.TimestampUtils; import com.gh.common.util.UsageStatsHelper; import com.gh.download.DownloadManager; -import com.gh.gamecenter.entity.DeviceDialogEntity; import com.gh.gamecenter.entity.PrivacyPolicyEntity; import com.gh.gamecenter.manager.FilterManager; import com.gh.gamecenter.retrofit.BiResponse; import com.gh.gamecenter.retrofit.RetrofitManager; -import com.gh.gamecenter.user.UserRepository; import com.halo.assistant.HaloApp; import com.lightgame.download.DownloadEntity; import com.lightgame.download.FileUtils; @@ -59,9 +56,7 @@ import androidx.annotation.NonNull; import androidx.core.app.ActivityCompat; import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.ViewPager; - import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.functions.BiConsumer; import io.reactivex.schedulers.Schedulers; import pub.devrel.easypermissions.AfterPermissionGranted; import pub.devrel.easypermissions.EasyPermissions; @@ -93,22 +88,17 @@ public class SplashScreenActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { - mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); isNewFirstLaunch = mSharedPreferences.getBoolean("isNewFirstLaunchV" + PackageUtils.getVersionName(), true); super.onCreate(savedInstanceState); - UserRepository.getInstance(getApplication()); // 初始化登录 - // 处理助手已经在后台运行导致的再次启动助手 if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) { finish(); return; } - TimestampUtils.initMap(); - // 判断是不是这个版本的新用户 if (isNewFirstLaunch) { // 删除更新后的光环助手包 @@ -216,15 +206,11 @@ public class SplashScreenActivity extends BaseActivity { @Override protected int getLayoutId() { - - final int layoutId; if (isNewFirstLaunch) { - layoutId = R.layout.activity_splash_intro; + return R.layout.activity_splash_intro; } else { - layoutId = R.layout.activity_splash_normal; + return 0; } - - return layoutId; } @Override @@ -239,6 +225,16 @@ public class SplashScreenActivity extends BaseActivity { return super.onKeyDown(keyCode, event); } + @Override + protected boolean useEventBus() { + return false; + } + + @Override + protected boolean useButterKnife() { + return false; + } + // 跳转到主界面 private void launchMainActivity() { getUniqueId(); diff --git a/app/src/main/java/com/halo/assistant/HaloApp.java b/app/src/main/java/com/halo/assistant/HaloApp.java index 94023bcf0a..49c1f13e0c 100644 --- a/app/src/main/java/com/halo/assistant/HaloApp.java +++ b/app/src/main/java/com/halo/assistant/HaloApp.java @@ -23,6 +23,7 @@ import com.gh.common.util.GdtHelper; import com.gh.common.util.HomeBottomBarHelper; import com.gh.common.util.PackageHelper; import com.gh.common.util.TeaHelper; +import com.gh.common.util.TimestampUtils; import com.gh.gamecenter.BuildConfig; import com.gh.gamecenter.Injection; import com.gh.gamecenter.entity.SubjectRecommendEntity; @@ -131,39 +132,37 @@ public class HaloApp extends TinkerAppLike { mChannel = Config.DEFAULT_CHANNEL; } - try { - PushManager.init(mChannel); - } catch (Exception e) { - e.printStackTrace(); - } + PushManager.init(mChannel); TeaHelper.init(getApplication(), mChannel); DataUtils.init(getApplication(), mChannel); - - // 注册回调以用于做各种统计 - registerActivityLifecycleCallbacks(new GHActivityLifecycleCallbacksImpl()); + GidHelper.getInstance().init(getApplication()); //初始化Fresco(BigImageViewer 已包含Fresco) BigImageViewer.initialize(FrescoImageLoader.with(getApplication())); - initReceiver(); - initLocalBroadcast(); + AppExecutor.getUiExecutor().executeWithDelay(() -> { + initReceiver(); + initLocalBroadcast(); - initConnectivityChangesReceiver(); - initPackageChangesReceiver(); + initConnectivityChangesReceiver(); + initPackageChangesReceiver(); + + // 注册回调以用于做各种统计 + registerActivityLifecycleCallbacks(new GHActivityLifecycleCallbacksImpl()); + ProcessLifecycleOwner.get().getLifecycle().addObserver(new ProcessorLifeCycleOwner()); + }, 500); // 耗时操作 AppExecutor.getIoExecutor().execute(() -> { + TimestampUtils.initMap(); + // 初始化全局下载监听 DownloadObserver.initObserver(); - GidHelper.getInstance().init(getApplication()); - // 刷新内存中的用户信息,避免应用进程重建时因没有用户信息数据而显示为掉登录状态 UserRepository.getInstance(getApplication()).getLoginUserInfo(); - ProcessLifecycleOwner.get().getLifecycle().addObserver(new ProcessorLifeCycleOwner()); - ExposureManager.init(); LoghubUtils.init(getApplication());