2013-07-31 57 views
0

我用Twitter4j获得与包括hashtag状态:Twitter4j:搜索

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(); 
      } 

我更换了*连键, 但是,应用程序无法启动

了java.lang.RuntimeException:无法开始活动ComponentInfo {com.example.app_evnt/com.example.app_evnt.SocialNetwork}:android.os.NetworkOnMainThreadException

回答

0

所有的networkcalls在主线程中都是不允许的,你可以像这样尝试在另一个线程:

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(); 
+0

现在的应用程序启动,但没有打印 –

+0

可能是没有结果被发现?尝试在for循环外打印一些东西 –

+0

我试过了:/,但没有打印 –