Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中asyntask和服务的区别_Android_Service_Android Asynctask_Handler - Fatal编程技术网

android中asyntask和服务的区别

android中asyntask和服务的区别,android,service,android-asynctask,handler,Android,Service,Android Asynctask,Handler,我是一个Android编程的初学者,当我了解到一些关于服务的知识时,问题就变得更严重了。 我们都知道UI线程无法运行长时间进程,因此我们应该在新线程中运行它们,并且我们立即意识到任务和服务的某些方面甚至在任务完成后发送广播。但是,我不确定何时使用它们 例如,我们经常使用活动登录,当数据应该发布时,可能会发布到远程服务器,这可能会花费很长时间,我们无法在LoginActivity中写入某些内容,可能是在异步任务或服务中。但哪一个是更好的选择?您的设备上的服务一直在后台运行 AsynkTack在您需

我是一个Android编程的初学者,当我了解到一些关于服务的知识时,问题就变得更严重了。 我们都知道UI线程无法运行长时间进程,因此我们应该在新线程中运行它们,并且我们立即意识到任务和服务的某些方面甚至在任务完成后发送广播。但是,我不确定何时使用它们


例如,我们经常使用活动登录,当数据应该发布时,可能会发布到远程服务器,这可能会花费很长时间,我们无法在LoginActivity中写入某些内容,可能是在异步任务或服务中。但哪一个是更好的选择?

您的设备上的服务一直在后台运行

AsynkTack在您需要时启动并在后台执行。完成后,线程将被销毁。

作为一般规则:

一个服务正在后台运行,并为其执行一些定期工作 你例如,如果您希望每隔15天从REST-API获取新闻 分钟,并在应用程序内或通过通知通知通知用户 而不是使用服务。 AsyncTask是一个独立的线程,用于处理工作密集型作业 防止UI线程阻塞。例如,在收到消息后 用户单击“获取新闻”按钮。
在您的情况下,用户的期望很重要。用户尝试登录并在活动中等待服务器的响应。您应该在AsyncTask中将请求发送到服务器,例如,向用户显示一个等待屏幕,直到有响应为止,然后尝试登录。因此,用户界面仍然有响应,但用户清楚地知道,他必须等待响应。

服务-服务是一种可以在后台执行长期运行操作的应用程序组件,它不提供用户界面。服务是一个没有UI的任务。总是在主线程上运行,也可以阻止主线程。我们可以通过调用方法startService来启动服务


AsyncTask类允许在后台运行指令,并再次与主线程同步。它还报告正在运行的任务的进度。用于并行任务。我们通过在工作线程上调用方法execute.Wrok启动它,并从主线程触发。它不能在循环中运行。

可能是重复的,所以服务试图提供应用程序始终需要的东西,而AsyncTask以比服务更短的时间提供一些结果?实际上,服务通常用于让任务始终在后台运行,而AsyncTask是一个准时的任务。查看这篇文章,它有很好的解释: