【问题标题】:can I start a service from another service in android?我可以从android中的另一个服务启动一个服务吗?
【发布时间】:2013-12-24 19:55:55
【问题描述】:

我正在开发一个应用程序,它会跟踪用户手机“未使用”的时间。

基本上,当用户按下解锁键或有来电时,该应用程序就会被激活。我写了一个BroadcastReceiver,它通知后台服务开始跟踪手机未使用的时间,并在用户按下锁定时显示活动。

我的问题是服务有时会在没有通知的情况下关闭。我可以再写一个服务,它可以定期检查主服务是否正在运行并在它关闭时切换它?或者还有其他更好的方法吗?

【问题讨论】:

    标签: android android-intent android-activity android-service


    【解决方案1】:

    已启动的服务可以使用 startForeground(int, Notification) API 将服务置于前台状态,系统认为它是用户主动意识到的,因此在内存不足时不适合杀死. (理论上,在当前前台应用程序的极端内存压力下,服务仍然可能被杀死,但实际上这应该不是问题。)

    【讨论】:

      【解决方案2】:

      是的,您可以在您的服务中启动其他服务。实际上,您总是这样做,但您没有意识到这一点。我的意思是当您在服务中调用 getSystemService(....) 初始化程序时,您使用的是由 android 声明的另一个服务。

      【讨论】:

        【解决方案3】:

        我没有那么有经验,但是是的,如果你愿意的话,你应该能够通过向另一个服务发送一个意图来启动另一个服务,如果根据http://developer.android.com/reference/android/app/Service.html,服务可能会在内存压力很大的情况下被系统杀死。
        您应该能够检查您的服务是否正在运行。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-02-13
          • 2015-11-02
          • 1970-01-01
          • 2011-06-07
          • 1970-01-01
          • 1970-01-01
          • 2014-04-16
          相关资源
          最近更新 更多