我使用Twitter4j来获取hashtag的状态:
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey("*******")
.setOAuthConsumerSecret("****")
.setOAuthAccessToken("*****")
.setOAuthAccessTokenSecret("*****");
TwitterFactory tf = new TwitterFactory(cb.build());
Twitter twitter = tf.getInstance();
Query query = new Query("source:twitter4j yusukey");
QueryResult result;
try {
result = twitter.search(query);
for (Status status : result.getTweets()) {
System.out.println("@" + status.getUser().getScreenName() + ":" + status.getText());
}
} catch (TwitterException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}我用键替换了*,但是应用程序无法启动
ComponentInfo{com.example.app_evnt/com.example.app_evnt.SocialNetwork}:java.lang.RuntimeException:无法启动活动android.os.NetworkOnMainThreadException
发布于 2013-07-31 12:08:13
在主线程上不允许所有的网络调用,您可以像这样在另一个线程中这样做:
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey("*******")
.setOAuthConsumerSecret("****")
.setOAuthAccessToken("*****")
.setOAuthAccessTokenSecret("*****");
TwitterFactory tf = new TwitterFactory(cb.build());
final Twitter twitter = tf.getInstance();
Query query = new Query("source:twitter4j yusukey");
new Thread(new Runnable() {
@Override
public void run() {
try {
QueryResult result = twitter.search(query);
for (Status status : result.getTweets()) {
System.out.println("@" + status.getUser().getScreenName() + ":" + status.getText());
}
} catch (TwitterException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();https://stackoverflow.com/questions/17969635
复制相似问题