如何将活动转变为Android中的服务?

时间:2011-07-20 13:10:21

标签: android service android-activity location

我是Android的新手,我编写了一个显示android用户位置的程序,并通过Web服务将其发送到服务器。在我的应用程序中,我希望它在后台运行,同时屏幕上会显示名称和其他进程的列表。我搜索了这个,发现一个服务可以在后台运行,我想知道是否有人有任何关于如何将其转变为服务的建议?

2 个答案:

答案 0 :(得分:1)

服务不是最佳用途。服务在后台运行,但它们在与应用程序的主UI线程相同的线程上运行。如果用户没有直接与应用程序交互,这很好。例如,如果您有一个将文件加载到服务器的应用程序,则可以使用一个按钮启动该服务以加载该文件,并在服务继续在后台运行时关闭该应用程序的活动。加载文件后,您可以弹出文件已加载的通知,或者只关闭服务。

活动在前台运行时运行的服务可能会阻止活动。因此,您不希望为此目的使用服务,因为在服务下载或将某些内容上载到服务器时UI不会更新

你想要的是AsyncTask。 AsyncTask是一个一次性线程处理程序,允许您在更新UI时执行高密集型工作。

http://developer.android.com/reference/android/os/AsyncTask.html

如果您想连续执行此操作,则AsyncTask可能无法正常工作。在这种情况下,您可以使用Java计时器或标准Java线程来处理连续工作。请注意,您永远不想从UI线程以外的任何其他线程更新UI。这会让你的应用最终崩溃。

答案 1 :(得分:-1)

阅读SDK中的Service类文档,它包含您想要了解的所有内容以及示例。