0

我是 android 开发的新手,无法理解我应该如何使用service's,更具体地说是哪种。我正在开发一个只对事情有用的简单系统。其中之一是不断地向服务器询问简单的telnet问题。这些问题的答案应在屏幕上提示。

所以为了简化我的问题。我应该喜欢什么样的服务?绑定intent service等?

我认为它必须运行一个自己的线程,因为它应该进行网络通信,所以我应该怎么做。

最后也是最重要的一点,我如何提供/提供MainActivity服务收集的信息并将其发布在屏幕上?

4

2 回答 2

1

我应该选择什么样的服务?绑定,意图服务等?

绑定服务仅在另一个应用程序组件绑定到它时运行。换句话说,如果一个活动绑定到该服务,然后该活动完成,该服务也会被销毁。
所以,首先决定你想要的服务的行为。当绑定到它的活动被破坏时,你希望它被破坏吗?如果是,那么也许绑定服务是正确的做法,如果不是,则使用已启动的服务,它可以无限期地在后台运行,即使启动它的组件被破坏。

我认为它必须运行一个自己的线程,因为它应该进行网络通信,所以我应该怎么做。

是的你是对的。您可以使用Service该类并在其中创建一个线程来完成繁重的工作,或者您可以通过使用IntentService提供自己的工作线程的一个来简化事情。

最后也是最重要的一点,我如何向 MainActivity 提供/提供服务收集的信息?

如果您决定使用 bound Service,那么您将能够通过所谓的 binder 对象与服务进行通信。另一方面,如果您使用,IntentService则可以使用ResultReceiverBroadcastReceiver将结果发回。

推荐阅读: http:
//developer.android.com/guide/components/services.html
http://developer.android.com/guide/components/bound-services.html

于 2013-07-09T11:41:05.277 回答
0

这是一个关于 Android 服务的快速总结,希望这将有助于决定采用哪种方法。强烈推荐阅读Android Services

安卓服务

  • “服务是一个应用程序组件,可以在后台执行长时间运行的操作,不提供用户界面”
  • 在主 (UI) 应用程序线程上运行。
  • 当资源不足时,优先于终止活动
  • 它不打算直接与活动/片段交互(活动可能随时被销毁)由于上述原因没有简单的回调能力......但是有一些方法可以使用意图,处理程序和消息来解决这个问题
  • 一个活动可以绑定到一个服务,它基本上提供了一个服务实例来调用方法,这些方法将在主线程上运行,建议使用单独线程的方法是使用Executors
于 2013-07-10T11:43:41.553 回答