作为标题,
我在kiahaapplication的自定义服务类中看到了下面的代码,以获取应用程序的Application对象:
((KiahApplication)super.getApplication()).setServiceRunning(true);
但是android.app.Service
类的getApplication方法怎么知道&返回我的自定义应用程序对象?
android.app.Service
不应该是我的自定义应用程序的一部分,
,它没有记录在应用程序的manifest文件中,manifest文件应该是应用程序成员的定义。
谢谢你的帮助!
super.getApplication()
在超类中调用getApplication,它是android.app.Service
((KiahApplication)super.getApplication())
将super.getApplication()
的结果强制转换为KiahApplication
,即class KiahApplication extends Application
((KiahApplication)super.getApplication()).setServiceRunning(true);
在kiahaapplication类
setServiceRunning(true);
但是Service类的getApplication方法怎么知道&返回我的自定义应用程序对象?
因为它是单例。在任何地方调用getApplication()
,它将在任何地方返回相同的结果:kiahaapplication实例。getApplication()
可以在上下文中调用。服务是一个上下文,因此可以调用该方法。
注意,调用中的super
是不需要的。