我有一组关键字(超过600),我想使用流式api来跟踪它们的推文.Twitter api将允许跟踪的关键字数量限制为200.因此,我决定使用多个OAuth令牌来完成此操作.我是这样做的:
String[] dbKeywords = KeywordImpl.listKeywords();
List<String[]> keywords = ditributeKeywords(dbKeywords);
for (String[] subList : keywords) {
StreamCrawler streamCrawler = new StreamCrawler();
streamCrawler.setKeywords(subList);
Thread crawlerThread = new Thread(streamCrawler);
crawlerThread.start();
}
Run Code Online (Sandbox Code Playgroud)
这是在线程之间分配单词的方式.每个线程接收不超过200个单词.这是StreamCrawler的实现:
public class StreamCrawler extends Crawler implements Runnable {
...
private String[] keywords;
public void setKeywords(String[] keywords) {
this.keywords = keywords;
}
@Override
public void run() {
TwitterStream twitterStream = getTwitterInstance();
StatusListener listener = new StatusListener() {
ArrayDeque<Tweet> tweetbuffer = new ArrayDeque<Tweet>();
ArrayDeque<TwitterUser> userbuffer = new ArrayDeque<TwitterUser>();
@Override
public void onException(Exception …Run Code Online (Sandbox Code Playgroud) 我创建了ListActivity和其他活动,当我从ListActivity中单击项目时,我希望显示这些活动.我的问题是我不知道如何在同一个窗口中执行它,因此ListActivity将始终保持可见,而窗口的其他部分将根据按下的元素进行更改.