作为标题,
我在KiahApplication的自定义服务类中看到了以下代码,以获取应用程序的应用程序对象:
((KiahApplication)super.getApplication()).setServiceRunning(true);
但是android.app.Service
类的getApplication方法怎么可能知道&返回我的自定义应用程序obj?
android.app.Service
不应该是我的自定义应用程序的一部分,
并且它没有记录在应用程序的清单文件中,该文件应该是应用程序成员的定义。
非常感谢您的帮助!
答案 0 :(得分:1)
super.getApplication()
在超类中调用getApplication,即android.app.Service
((KiahApplication)super.getApplication())
将结果super.getApplication()
投放到KiahApplication
,即class KiahApplication extends Application
((KiahApplication)super.getApplication()).setServiceRunning(true);
在KiahApplication类上调用setServiceRunning(true);
但是Service class的getApplication方法怎么可能知道&返回我的自定义应用程序obj?
因为它是单身人士。在您调用getApplication()
的任何地方,它将在任何地方返回相同的内容:KiahApplication实例。可以在Context上调用getApplication()
。服务是一个上下文,因此可以调用该方法。
请注意,不需要调用super
。