-1
我有这个应用程序连接到Facebook。出于某种原因,我得到这个错误:Android Facebook更新UI
android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
这是我的代码:
活动:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
app = (AppVariables)getApplicationContext();
context = getBaseContext();
facebook = app.getFacebook();
facebookRunner = new AsyncFacebookRunner(facebook);
facebookConnection = new FacebookConnection(this);
internetStatus = (TextView)findViewById(R.id.internetStatus);
facebookRunner.request("me", facebookConnection);
}
@Override
public void onFacebookResponse(String response) {
internetStatus.setText(response);
}
这是FacebookConnection类:
public class FacebookConnection implements RequestListener {
private FacebookConnectionListener listener;
public FacebookConnection (FacebookConnectionListener listener)
{
this.listener = listener;
}
public void updateFacebookListener(String response)
{
listener.onFacebookResponse(response);
}
@Override
public void onComplete(String response, Object state) {
updateFacebookListener(response);
}
@Override
public void onIOException(IOException e, Object state) {
// TODO Auto-generated method stub
}
@Override
public void onFileNotFoundException(FileNotFoundException e, Object state) {
// TODO Auto-generated method stub
}
@Override
public void onMalformedURLException(MalformedURLException e, Object state) {
// TODO Auto-generated method stub
}
@Override
public void onFacebookError(FacebookError e, Object state) {
// TODO Auto-generated method stub
}
}
这是我的听众界面:
public interface FacebookConnectionListener {
public void onFacebookResponse(String response);
}
怎么了?
我不明白。 为什么我写了一个听众。 当AsyncFacebookRunner完成时,它会用响应调用我的侦听器。为什么它不好? – 2012-04-04 14:17:19
监听器只是一种让您知道流程何时完成(失败等)的方式。但它与线程无关。看看这个教程:http://ericosgood.com/prog/facebook-android-sdk-tutorial/到最后它显示如何做你想做的。 – 2012-04-04 14:30:18
是的,我发现,但如果我的RequestListener是在不同的Java类文件中怎么做?它说他在范围内没有我的活动实例。 – 2012-04-04 14:40:26