通过应用程序从服务访问全局对象

时间:2017-10-09 14:06:44

标签: java android service android-service

问题描述

我正在编写基于Android Service的应用程序。在应用程序中的一些对象(例如Navigator)我正在Application类初始化,所以我可以从任何地方访问它们,它们是单身人士。

CustomApplication.java

public class CustomApplication extends android.app.Application {

    private Navigator navigator;

    public Navigator getNavigator() {
        return this.navigator;
    }

    @Override
    public void onCreate() {
        this.navigator = new Navigator();
    }
}

CustomService.java

public class CustomService extends Service {

    private Navigator navigator;

    @Override
    public void onCreate() {
        this.navigator = ((CustomApplication)getApplication()).getNavigator();
    }
}

问题

我对调用

有些怀疑

this.navigator = ((CustomApplication)getApplication()).getNavigator();

来自Service onCreate()

并且通常来自任何方法都不正确,就像在kill和service中的应用程序运行时一样,它可能会导致一些问题(例如nullpointer),Am我是对的,这样做是否安全,不会引起任何问题?

1 个答案:

答案 0 :(得分:1)

  

就像申请被杀害的情况一样

"应用程序"不是"被杀#34;进程终止。如果您的代码正在运行,则您的进程不会终止。

话虽如此,这里使用自定义getApplication()与标准Java单例相比没有任何价值。

相关问题