我是Android的新手,我编写了一个显示android用户位置的程序,并通过Web服务将其发送到服务器。在我的应用程序中,我希望它在后台运行,同时屏幕上会显示名称和其他进程的列表。我搜索了这个,发现一个服务可以在后台运行,我想知道是否有人有任何关于如何将其转变为服务的建议?
答案 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类文档,它包含您想要了解的所有内容以及示例。