Java 已在单独的线程中获取NetworkOnMainThreadExeption
我正在尝试将android应用程序与Twitter连接,但我不知道我的这部分代码有什么问题:Java 已在单独的线程中获取NetworkOnMainThreadExeption,java,android,Java,Android,我正在尝试将android应用程序与Twitter连接,但我不知道我的这部分代码有什么问题: Thread thread = new Thread(){ @Override public void run() { ConfigurationBuilder builder = new ConfigurationBuilder(); builder.setOAuthConsumerKey(
Thread thread = new Thread(){
@Override
public void run() {
ConfigurationBuilder builder = new ConfigurationBuilder();
builder.setOAuthConsumerKey(TWITTER_CONSUMER_KEY);
builder.setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET);
Configuration configuration = builder.build();
TwitterFactory factory = new TwitterFactory(configuration);
twitter = factory.getInstance();
try {
// Error is here
requestToken = twitter.getOAuthRequestToken(TWITTER_CALLBACK_URL);
startActivity(new Intent(Intent.ACTION_VIEW, Uri
.parse(requestToken.getAuthorizationURL())));
} catch (TwitterException e) {
e.printStackTrace();
}
}
};
thread.run();
为什么在使用新线程的情况下仍出现NetworkOnMainThreadException?
感谢您的帮助。呼叫而不是
thread.run()
;run()
方法不会生成新线程。如果我使用start()而不是run(),我会遇到其他异常:调用FromErrorThreadException。请发布堆栈跟踪,然后在runOnUIThread
中尝试catch块。您不能在另一个线程而不是UI线程本身中启动活动或修改UI。希望这有帮助。@Kai-hmm。。我也想到了。但是,startActivity
是线程安全的,请根据Use AsyncTask。