当我的应用程序开始时,我试图启动一个服务,我需要它的服务重新启动,以防用户决定强制关闭服务,即使应用程序正在运行(它是好的,他强制关闭应用程序,但我需要防止关闭服务,而应用程序正在运行)。
所以我开始扩展Application类,这就是我所做的来启动服务…
ServiceConnection conn = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder service) {
Log.d("start","ok");
}
public void onServiceDisconnected(ComponentName className) {
}
};
bindService(new Intent(this,DueService.class), conn, 0);
但是,这不会启动服务。不过,使用startService似乎是可行的。什么好主意吗?
从Application
中使用bindService()
是毫无意义的,因为您将永远无法调用unbindService()
。
Application
使用startService()
的计划行事,那么您正在朝着泄漏此服务的方向前进。在Android中,"应用程序正在运行"并没有真正的概念作为一个生命周期结构,所以你不会有一个逻辑时间来停止服务。
(顺便说一句,虽然Application
有一个onTerminate()
方法,但它永远不会被调用)