android私有属性突然变为空
Android TV应用程序在严格模式下初始化我的AAR库,如下所示:android私有属性突然变为空,android,memory,jvm,Android,Memory,Jvm,Android TV应用程序在严格模式下初始化我的AAR库,如下所示: public class MainApplication extends Application { @Override public void onCreate() { super.onCreate(); LibraryApplication.init(this); }} 图书馆 public class LibraryApplication extends Application { @Suppre
public class MainApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
LibraryApplication.init(this);
}}
图书馆
public class LibraryApplication extends Application {
@SuppressLint("StaticFieldLeak")
private static LibraryApplication instance;
@SuppressWarnings("unused")
public static void init(Application application) {
if (instance == null) {
instance = new LibraryApplication(application);
return;
}
throw new RuntimeException("Library already initialized.");
}
private final LibraryActivityHandler activityHandler;
public LibraryApplication(final Application application) {
this.activityHandler = new LibraryActivityHandler(this);
}}
LibraryActivityHandler
class LibraryActivityHandler implements Application.ActivityLifecycleCallbacks {
private Activity currentActivity;
@Override
public void onActivityResumed(Activity activity) {
assert activity != null;
this.currentActivity = activity;
//Just to show you that activity is really not null
currentActivity.getLayoutInflater();
Log.debug("activity set");
}
boolean isActivityNull() {
Log.debug("is null: " + (currentActivity == null));
return currentActivity == null;
}
问题:在日志中,我可以看到“活动集”,稍后我可以看到“IsNull:true”。有人能给我解释一下当前活动是如何变为空的吗
在使用Android和Java超过10年之后
我承认我对此没有太多想法
编辑:应用程序也在使用Dagger库,严格模式不会导致问题。问题是由多进程应用程序引起的。问题是由多进程应用程序引起的。不要使用
库应用程序
静态扩展库应用程序
。并在库应用程序中实现ActivityLifecycleCallbacks
?在什么情况下?另一件让人困惑的事情是,LibararyApplication扩展了应用程序,而您正在主应用程序中实例化另一个应用程序?你到底想实现什么?不要让LibraryApplication
静态扩展LibraryApplication
。并在库应用程序中实现ActivityLifecycleCallbacks
?在什么情况下?另一件让人困惑的事情是,LibararyApplication扩展了应用程序,而您正在主应用程序中实例化另一个应用程序?你到底想达到什么目的?