我正在尝试在我的应用程序启动时启动服务,我需要它重新启动服务,以防用户决定强制关闭服务,即使应用程序正在运行(没关系,让他强制关闭应用程序,但我需要防止在应用程序运行时关闭服务)。
所以我着手扩展应用程序类,这就是我启动服务所做的...
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()
。
当然,如果您的服务主动为用户提供值(value),而不是仅仅因为您的应用程序的某些其他组件恰好被加载,那么最好只在内存中。就目前而言,如果您按照从 Application
使用 startService()
的计划进行,您将走上泄漏此服务的道路。 Android 中没有将“应用程序正在运行”作为生命周期构造的真正概念,因此您将没有合理的时间来停止服务。
(顺便说一句,虽然 Application
有一个 onTerminate()
方法,但它永远不会被调用)
关于android - 在 Application 的 onCreate 中启动服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8431631/