相关疑难解决方法(0)

从Activity启动IntentService并在IntentService完成时刷新Activity

在我的Android应用程序中,我有一个带适配器的简单列表视图.有一个繁重的查询是用数据填充列表视图.所以我把它放到另一个线程中运行的IntentService.

IntentService通常单独运行,只是为了查询一些数据并将其插入SQLite数据库.

但现在我想有以下可能性:

  1. 该活动使用startService()启动IntentService.
  2. IntentService做了很多工作.
  3. 当IntentService完成时,它应该通知活动有关结果的信息,以便可以刷新活动以显示新数据.

这可能吗?我在这个主题的Stack Overflow上阅读了很多问题.但在每个问题中,都有另一种解决方案.所以我想问你们所有人:哪种解决方案最符合我的目的?

  • 将IntentService绑定到Activity似乎不是最佳解决方案,因为可能存在与活动的配置更改等冲突.正确吗?
  • 这篇博文建议使用带有Parcelables的AIDL - 这对我来说听起来非常复杂.有一种更简单的方法,不是吗?
  • 可以在活动中设置广播接收器,并在完成后在IntentService中触发此广播.
  • 有人说你应该使用createPendingResult()将PendingIntent传递给IntentService.如果IntentService在其附加内容中发现PendingIntent,则使用它来触发Activity中的onActivityResult().这是选择的方式吗?

multithreading android broadcastreceiver android-intent android-activity

27
推荐指数
3
解决办法
2万
查看次数