6
                            
                                描述需求
                                    
                                
                            
                        简洁地描述下需求。 原来一直使用的是1.24版本,昨天升级到1.28.1后发现app不能正常运行,项目中使用了tinker utils的init方法会调用application的registerActivityLifecycleCallbacks,此时的application是tinkerApplication,在tinkerApplication的onCreate方法中会将"android.app.ActivityThread""android.app.LoadedApk"中的application替换为我自定义的myApplication,所以utils中的ActivityLifecycleCallback将不会调用,导致ActivityUtils中的方法出错。 1.24的初始化方法:
    public static void init(final Application app) {
        if (sApplication == null) {
            if (app == null) {
                sApplication = getApplicationByReflect();
            } else {
                sApplication = app;
            }
            sApplication.registerActivityLifecycleCallbacks(ACTIVITY_LIFECYCLE);
        } else {
            if (app != null && app.getClass() != sApplication.getClass()) {
                sApplication.unregisterActivityLifecycleCallbacks(ACTIVITY_LIFECYCLE);
                ACTIVITY_LIFECYCLE.mActivityList.clear();
                sApplication = app;
                sApplication.registerActivityLifecycleCallbacks(ACTIVITY_LIFECYCLE);
            }
        }
    }1.24sApplication有值也可以再次赋值。我会在myApplication中手动再调用一次,ActivityLifecycleCallback会绑定到myApplication.
1.28的初始化方法:
  public static void init(final Application app) {
         if (sApp != null) return;
         sApp = app;
         UtilsBridge.init();
     }1.28 sApp有值就不可以赋值。
可借鉴的如果有的话,可以给出一些参考文章、链接、代码 tinker