我正在编写基于Android Service
的应用程序。在应用程序中的一些对象(例如Navigator)我正在Application
类初始化,所以我可以从任何地方访问它们,它们是单身人士。
public class CustomApplication extends android.app.Application {
private Navigator navigator;
public Navigator getNavigator() {
return this.navigator;
}
@Override
public void onCreate() {
this.navigator = new Navigator();
}
}
public class CustomService extends Service {
private Navigator navigator;
@Override
public void onCreate() {
this.navigator = ((CustomApplication)getApplication()).getNavigator();
}
}
我对调用
有些怀疑 this.navigator = ((CustomApplication)getApplication()).getNavigator();
onCreate()
的并且通常来自任何方法都不正确,就像在kill和service中的应用程序运行时一样,它可能会导致一些问题(例如nullpointer),Am我是对的,这样做是否安全,不会引起任何问题?
答案 0 :(得分:1)
就像申请被杀害的情况一样
"应用程序"不是"被杀#34;进程终止。如果您的代码正在运行,则您的进程不会终止。 1}}将在您的流程运行时运行。
话虽如此,这里使用自定义getApplication()
与标准Java单例相比没有任何价值。