我是Android编程的初学者,当我了解有关服务的内容时,问题就变成了。 我们都知道UI线程不能运行一个长时间的进程,所以我们应该在一个新的线程中运行它们,我们立即认识到Handler AsyncTask和Service的某些东西甚至在任务完成后发送BroadCast。但是,我不确定何时使用它们。
例如,我们经常使用活动登录,当数据发布时,可能发布到远程服务器,可能需要花费很长时间,我们无法在LoginActivity中写一些东西,可能是在AsyncTask或Service中那样做。但哪个是更好的选择?
答案 0 :(得分:0)
服务一直在设备的后台运行。
AsynkTack会在您需要并在后台执行时启动。完成后,线程就会被破坏。
答案 1 :(得分:0)
作为一般规则:
在您的情况下,用户的期望很重要。用户尝试登录并在活动中等待服务器的响应。您应该在AsyncTask中将请求发送到服务器,例如在响应出现之前向用户显示等待屏幕("尝试登录")。因此UI仍然响应,但用户清楚地知道,他必须等待回复。
答案 2 :(得分:0)
服务 - 服务是一个可以在后台执行长时间运行的应用程序组件,它不提供用户界面。服务是一个没有UI的任务。总是在主线程上运行,也可以阻止主thread.We可以通过调用方法startService()
来启动服务AysnTask - AsyncTask类允许在后台运行指令并再次与主线程同步。它还报告了正在运行的任务的进度。用于并行任务。我们通过调用方法execute()来启动它。在工作线程上工作并从主线程触发。它不能在循环中运行。