【问题标题】:How to gracefully terminate a remote service process?如何优雅地终止远程服务进程?
【发布时间】:2011-01-07 19:30:36
【问题描述】:

目前我相信我在管理我的应用程序远程服务方面做得很好。当我完成使用它时,我可以看到 onDestroy() 调用,完美......

现在的问题是我可以通过 DDMS 或手机正在运行的进程看到远程进程仍然挂起。用户看到这个并认为我在后台做一些事情等等......责怪我的应用程序而不是要求退出按钮......事实是他们不需要退出按钮!

所以我的问题:

如何优雅地终止远程 服务流程?

我可以获取 PID 并将其杀死,但有些事情告诉我这可能不是执行此操作的好方法,因为服务可能会再次重新启动...

任何帮助将不胜感激!

-乔纳

【问题讨论】:

  • 给他们一个退出按钮。使其成为非操作。然后告诉他们当他们按下按钮时它没有退出是Android的错。 :)
  • 大声笑...是的,但我只想让事情正常进行。我需要做的就是删除该进程,我正在关闭服务就好了,但我也需要它消失...... :)

标签: android service


【解决方案1】:

目前我相信我在管理我的应用程序远程服务方面做得很好。

简单的解决方案:摆脱远程服务。如果您编写了应用程序和服务,那么您不需要它是远程的。唯一需要远程的情况是应用和服务是两个独立应用的一部分。

现在的问题是我可以通过 DDMS 或手机正在运行的进程看到远程进程仍然挂起。

当然。

如何优雅地终止远程服务进程?

你没有。 Android 将在它选择时终止它。因此,简单的解决方案是首先通过没有远程服务来摆脱远程服务进程。

【讨论】:

  • 感谢您的回复。目前我的应用程序是一个在线流媒体应用程序。如果我错了,请纠正我,我可能是。 Android 中的一个进程被分配了一定数量的内存和 CPU。通过有一个流媒体流程和另一个 UI 流程,我相信应用程序会感觉更敏捷。您将其全部运行在一个进程上的想法听起来不错,但不确定进程生命周期......它会受到任何影响吗?我想我可以阅读更多相关信息......:P
  • @Moto:“通过有一个流媒体进程和另一个 UI 进程,我相信应用程序会感觉更敏捷。” ——在现有硬件上,这是值得怀疑的。对于多核设备,它更有可能,但我仍然认为后台线程将绰绰有余。 “会不会受到影响?” -- 没看懂问题,抱歉。
  • 如果服务的生命周期在同一个活动进程中运行,请注意它是否会受到任何影响。
  • @Moto:不是。生命周期保持不变。
猜你喜欢
  • 2011-01-04
  • 1970-01-01
  • 2019-08-01
  • 1970-01-01
  • 2015-06-07
  • 1970-01-01
  • 1970-01-01
  • 2016-05-31
  • 1970-01-01
相关资源
最近更新 更多