我有点困惑,在什么情况下我需要使用 Service、asyncTask 和 Broadcast Receiver 等应用程序组件。
任何人都可以解释它们之间的确切区别以及我需要在哪里使用这些组件吗?
我有点困惑,在什么情况下我需要使用 Service、asyncTask 和 Broadcast Receiver 等应用程序组件。
任何人都可以解释它们之间的确切区别以及我需要在哪里使用这些组件吗?
AsyncTask 是一种创建异步执行某些工作的新线程的友好方式。
广播接收器类似于系统事件的事件处理程序。它可以在后台运行并在发生某些事情时执行操作,例如关闭手机或打开 wifi..
服务只是一个在后台工作的应用程序(如守护程序)并为应用程序提供信息或仅执行任务。
对不起我的英语,我试着让我理解,但这不是我的母语
到目前为止,我将直接介绍我在项目中应用这三个的地方:
1.Service:你想在后台执行的事情,不需要任何用户交互。例如连续获取位置数据或连续发送一些数据到你的服务器。你也可以使用服务每隔几个时间单位执行任务。例如发送十分钟背景更新。
2.AsyncTask:创建一个新的执行线程。到目前为止我遇到的最佳用途是调用 Web 服务..我使用 AsyncTask 执行以下操作以进行 Web 服务调用 1.在 onPreExecute() 中显示进度条 2.执行我的 Web doInBackground(Params...) 中的服务调用 3.In onPostExecute(Result) 更新 UI 或使用来自 Web 服务的响应做一些其他事情。
3.BroadCastRecievers 就像您的应用程序的全局接收器。它们可以侦听系统事件,例如手机重启或您的应用程序中的自定义事件。我用它们在手机重启时启动服务,当我们关闭时停止电话。
让我用一个用例来解释,这样你就更好地理解了——
AsyncTask - 想要从服务器获取一些东西,或者向服务器发布一些东西?如果我们在主线程上这样做,用户将无法与应用程序交互。因此使用了 Asynctask,它在不同的线程中执行网络活动。
服务 - 想在后台管理一些东西?比如每 10 分钟或 1 小时获取用户的位置,或者在用户穿越特定区域时根据位置提醒用户。即使应用程序未打开,Service 也会使应用程序运行(用户可能正在做其他事情,或者手机被锁定,Service 仍然在后台运行)。
广播接收器 - 假设您正在跟踪位置并在本地存储(当互联网关闭时)。不是在互联网启动时,您想发送所有这些。因此,您向操作系统注册,希望监听该特定事件,并获得控制权。或者当你想让服务器知道设备重启了,那么我们只需要实现它。
清除?
“服务”是一个在后台运行的组件,不与用户交互。每个开发人员都可以在他的应用程序中创建新的服务。服务支持真正的 Android 多任务处理,因为它们可以在自己的进程中运行。
“AsyncTask”封装了Threads和Handlers的创建。AsyncTask 通过 execute() 方法启动。execute() 方法调用 doInBackground() 和 onPostExecute() 方法。主要目的是在没有用户交互的情况下下载一些东西。
“广播接收器”是一个扩展广播接收器的类,它通过 AndroidManifest.xml 文件(或通过代码)在 Android 应用程序中注册为接收器。您可以通过 Context.registerReceiver() 方法动态注册广播接收器。BroadcastReceiver 类定义了 onReceive() 方法。只有在这个方法中你的BroadcastReceiver对象才有效,之后Android系统才能回收BroadcastReceiver。
服务及其本地内存变量被加载到内存中并始终运行
广播接收器只保证在内存中并在处理事件时运行。
如果内存不足,操作系统可以从内存中删除广播接收器。