【问题标题】:Make service indepented from activity (Android)使服务独立于活动(Android)
【发布时间】:2010-03-28 19:34:29
【问题描述】:

我有一个带有两个按钮的活动,开始和停止。如果用户按下启动按钮,则使用 Context.startService 创建服务。并且停止按钮调用 Context.stopService。

我希望停止按钮成为销毁服务的唯一方法。现在,如果我使用任务管理器结束活动,该服务也会被终止。有什么办法可以避免吗?

编辑:另外,我想知道任务管理器(例如 Advanced Task Manager Free)如何杀死活动和服务?因为我的 onDestroy() 和这样的方法都没有被调用。

【问题讨论】:

    标签: android service android-activity


    【解决方案1】:

    现在,如果我使用 任务管理器,服务被杀死为 好吧。有什么办法可以避免吗?

    没有。另请注意,用户可以随时通过 Android 内置的设置应用程序停止您的服务。

    另外,我想知道一个任务如何 管理器(例如高级任务管理器 免费)杀死活动和服务?

    ActivityManager#restartPackage()。请记住,此方法的行为将来可能会发生变化。

    【讨论】:

    • 好的。非常感谢!但我知道一些似乎正在这样做的应用程序。例如 Lookout (androlib.com/android.application.com-lookout-zznx.aspx)。如果我终止活动,我仍然可以看到 Lookout 的 NotificationService 正在运行。与手势搜索相同。他们是如何做到这一点的?
    • 向 Lookout 的作者提问是个好问题。我不是其中之一。此外,用户保持对其设备的控制也很重要。任何无法停止的服务,至少不能被设置应用程序停止,对 Android 来说都是不利的。毕竟,他们使用的任何技术都可能被恶意软件本身利用。因此,虽然我认为任务杀手肯定被过度使用,但持久服务更糟糕。
    • @shuwo 他们可能已经将活动和服务分离到单独的进程中。
    • 听起来他们在使用远程服务
    【解决方案2】:

    我应该想象没有办法做到这一点,否则将无法结束服务,因为停止它的按钮将被破坏。我认为您所能做的就是关闭活动中的所有其他内容,但让它继续运行以保持服务正常运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-08
      • 1970-01-01
      相关资源
      最近更新 更多