【发布时间】:2011-07-09 03:22:43
【问题描述】:
我有一个复杂的应用程序,它具有后台线程(可能在服务中),当它们从互联网接收数据时,需要通知我的主要显示活动(以更新多个状态指示器)。所有都在同一个进程中运行(我认为没有理由不这样做)。
但是,在某些情况下,这些事件很频繁 - 每秒 5 个。此外,当活动不可见甚至被破坏时,可能会发生这些事件。我认为关于这个问题的唯一新颖之处在于效率问题。例如,我仍然以 G1 为目标。
this thread中提到了很多方法,但是不知道哪一个足够高效,如果activity被销毁了还能工作。这些方法是我更愿意遵循的“Android 方式”。
我有三种丑陋的反 Android 方法,但它们也有缺点:
- 在活动中有一个等待信号量的线程,并在释放时进行更新。缺点:多线程,如何处理几种事件类型
- 与 #1 类似,但使用并发阻塞队列对象。缺点:额外的线程,同类型的事件可能会多次进入队列(不好)
- 保持对活动处理程序的静态引用,并使用它来运行更新程序。缺点:(a)可能会泄露对activity的引用? (b) 当活动改变状态时会发生什么? (c) 当只需要一个时,可能会出现多个可运行文件。
【问题讨论】:
标签: android service android-activity android-notifications