android - 在 Application 的 onCreate 中启动服务

标签 android service android-service

我正在尝试在我的应用程序启动时启动服务,我需要它重新启动服务,以防用户决定强制关闭服务,即使应用程序正在运行(没关系,让他强制关闭应用程序,但我需要防止在应用程序运行时关闭服务)。

所以我着手扩展应用程序类,这就是我启动服务所做的...

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/

相关文章:

java - 使用服务时 MediaPlayer 无法开始播放?

Android in app billing 声称不支持使用示例代码

android - Activity 未找到异常 : Unable to find explicit activity class service

android - 如何让本地服务在选项卡之间运行?

Android:忽略自签名证书错误;实际执行情况?

android - 如何从 Android 发送 SNEP GET 请求

Android:调试正在运行的应用程序的正确方法(运行时错误/日志)

c# - windows服务打不开sql连接

android - 如何使用 sax 解析器解析像这样丑陋的结构化 XML

java - 如何在 Android 中使用 Intent 向服务发送信息