Android Twitter4j getUserTimeline在Thread中变慢

时间:2012-07-31 00:08:01

标签: android multithreading broadcastreceiver alarmmanager twitter4j

我有一个闹钟管理器,它每分钟启动一个广播接收器,它运行一个具有最高优先级的线程。在该主题中,我使用Twitter4j.getUserTimeline(页面)从我用于消防部门的推特帐户(即呼叫信息)获取60条最新推文。我的问题是我注意到getUserTimeline上不时出现大量延迟。通常getUserTimeline需要4秒或更短的时间,但有时甚至在信号很好的区域和wifi上也需要几分钟。我在主app / UI中使用相同的代码调用twitter4j.getUserTimeline,最多只有3秒的延迟。

任何人都知道为什么会这样或者如何修复它?

1 个答案:

答案 0 :(得分:0)

如果你启动的过程大约需要4秒钟,那么你可能会在任何时间点运行4个或更多线程 - 所有这些都在做同样的事情。这些进程之间是否存在某种干扰 - 即:线程死锁? 如果Twitter4j.getUserTimeline函数不能保证线程安全,那么最好启动后台服务(将其设置为在前台运行以便Android不会将其杀死),然后让它在循环中连续调用getUserTimeline函数。然后,它可以在检测到重要事件时触发要启动的活动。