我的应用程序的Thread,Asynctask或intentService?

时间:2015-02-21 11:00:11

标签: android multithreading service android-asynctask bluetooth

我需要你的意见我的应用程序。我正在开发一个通过蓝牙与收音机通信的应用程序。应用分为3个(滑动)标签

  1. 首先,我提供了一个连接选项和一个“连接”按钮,用于将我的设备连接到收音机。

  2. 在第二个地方有一张地图显示我的位置(收音机可以发送一个GPS字符串,我用我的算法解码它,我获得经度和纬度)。

  3. 在第三个中,有一个类似的蓝牙聊天选项,我可以通过该选项向收音机发送/接收简单的短信。

  4. 此应用必须保留在后台并连接到收音机,并且必须在通知区域中显示(类似于SMS)一个显示“已收到消息”的图标。所以我希望你的意见是开发应用程序:我必须使用 thread / asynctask 进行连接,使用 thread / asynctask 进行映射,并使用intentservice来获取消息或者使用什么你认为应该做什么?这是我在后台的第一个应用程序,上个月我使用asynctask实现了我的应用程序的一部分。

    感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

当你必须在一个单独的线程上执行一个短暂的操作并将最终结果发布在主/ UI线程上时,应该使用

AsyncTask,而我认为你的应用程序不是这种情况。

Service应该用于执行长时间运行的任务,这些任务在后台进行并继续工作,而不管前景中是否有Activity。但是,Service仍然在主线程上运行,这意味着如果你对这个Service进行大量繁重的计算,它将减慢你的UI(当UI存在时)。

这将我们带到IntentService,它在单独的线程上执行长时间运行 在后台运行,而不管是否{{1是否存在。

所以Activity可能是你想要一个流畅的用户界面的最佳选择,但你也可以在后台独立于app的UI组件进行工作(IntentService无法做到这一点)。但是,您的工作已经完成,因为当您要传输数据时,您仍需要同步/ AsyncTaskIntentService绑定。