Java 从错误线程调用异常
我有创建线程与服务器通信的活动。此线程每隔几秒钟接收一个字符串。我想将此字符串添加到活动(在ListView中)中的列表和显示中,但在尝试这样做时,我被调用为FromErrorThreadExceptionJava 从错误线程调用异常,java,android,multithreading,Java,Android,Multithreading,我有创建线程与服务器通信的活动。此线程每隔几秒钟接收一个字符串。我想将此字符串添加到活动(在ListView中)中的列表和显示中,但在尝试这样做时,我被调用为FromErrorThreadException class MyActivity() extends AppCompatActivity { ArrayList<String> list; ArrayAdapter<String> adapter; public MyActivity()
class MyActivity() extends AppCompatActivity {
ArrayList<String> list;
ArrayAdapter<String> adapter;
public MyActivity(){
...
setContentView(R.layout.main);
list = new ArrayList<>();
ListView myList = (ListView) findViewById(R.id.my_list);
adapter = new ArrayAdapter<>(this, R.layout.list_element, list);
myList.setAdapter(adapter);
Thread thread = new Thread(new Runnable(){
@Override
public void run(){
while(true){
String dataFromServer = networkManager.receiveData();
list.add(dataFromServer);
adapter.notifyDataSetChanged();
}
}
});
}
}
class MyActivity()扩展了AppActivity{
数组列表;
阵列适配器;
公共活动(){
...
setContentView(R.layout.main);
列表=新的ArrayList();
ListView myList=(ListView)findViewById(R.id.my_列表);
适配器=新阵列适配器(此,R.layout.list\u元素,list);
myList.setAdapter(适配器);
Thread Thread=新线程(new Runnable(){
@凌驾
公开募捐{
while(true){
字符串dataFromServer=networkManager.receiveData();
添加(dataFromServer);
adapter.notifyDataSetChanged();
}
}
});
}
}
我怎样才能解决这个问题 在操作列表之前切换回UI线程
list.post (new Runnable()
{
@Override public void run()
{
String dataFromServer = networkManager.receiveData();
list.add(dataFromServer);
adapter.notifyDataSetChanged();
}
});
如果您想在UI线程中使用异步操作,我建议您使用。只需将线程执行包装在扩展AsyncTask的类中 我无法更新工作线程内的主(UI)线程。您可以使用asycktask并更新asynctask的UI onPostExecute()方法