我接受了采访,并获得了以下代码,因此UserAPI是一个用于从网络中检索数据的实用程序类。 假设它使用自己的线程机制操作而不管调用者线程。 我必须找到代码的错误:
public class NetworkTestActvitiy extends Activity {
private TextView userNameTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.chegg_test_layout);
userNameTextView = (TextView)findViewById(R.id.userName);
}
@Override
protected void onStart() {
super.onStart();
loadUserName();
}
private void loadUserName() {
UserAPI.getInstance().getUserName(new NetworkListener() {
@Override
public void onError(ErrorMessage error) {
Logger.e("Failed to get user use: " + error.getMessage());
}
@Override
public void onSuccess(String userName) {
userNameTextView.setText(userName);
}
});
}
}
答案 0 :(得分:1)
我的猜测是,对userNameTextView.setText
的调用不能来自UI线程,必须进行编组。