Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android调用FromErrorThreadException_Android_Multithreading_Exception_Status - Fatal编程技术网

Android调用FromErrorThreadException

Android调用FromErrorThreadException,android,multithreading,exception,status,Android,Multithreading,Exception,Status,我已经看到了很多关于这个问题的问题,但我真的对任何答案都不满意 我希望它有一个类ConnectionController实现Runnable,它负责打开到服务器的连接,读写消息,并且从应用程序开始到结束都必须实例化 我有一个类MainActivity扩展自Activity,一旦创建它就会实例化一个ConnectionController对象 该connectionController必须更改MainActivity(以及最终在另一个Activity)上的某些字段,例如status ConConn

我已经看到了很多关于这个问题的问题,但我真的对任何答案都不满意

我希望它有一个
类ConnectionController实现Runnable
,它负责打开到服务器的连接,读写消息,并且从应用程序开始到结束都必须实例化

我有一个
类MainActivity扩展自Activity
,一旦创建它就会实例化一个ConnectionController对象

该connectionController必须更改MainActivity(以及最终在另一个Activity)上的某些字段,例如status ConConnections ImageView,甚至是received messages TextView

因为connectionController是一个线程,所以我无法访问元素(称为FromErrorThreadException(只有创建视图层次结构的原始线程才能接触其视图)

您建议使用什么?我看到了包含异步任务、处理程序和MyUIRunable的解决方案,但我不知道对于这种情况,什么是最好的解决方案

提前谢谢

该connectionController必须更改MainActivity(以及最终在另一个Activity)上的某些字段,例如status ConConnections ImageView,甚至是received messages TextView

不,它没有。它需要安排更改这些内容。由于某种原因,您选择将“控制器”设置为线程,因此控制器本身无法更改这些UI元素

你推荐用什么

视图上使用
post()
。或在
活动上使用
runOnUiThread()
。或使用
处理程序

该connectionController必须更改MainActivity(以及最终在另一个Activity)上的某些字段,例如status ConConnections ImageView,甚至是received messages TextView

不,它没有。它需要安排更改这些内容。由于某种原因,您选择将“控制器”设置为线程,因此控制器本身无法更改这些UI元素

你推荐用什么


视图上使用
post()
。或者在
活动上使用
runOnUiThread()
。或者,使用
处理程序

我的问题是最好使用什么。无论如何,我选择了处理程序。Thanks@Edu当前位置没有“最佳”,至少在抽象意义上是这样。任何一种都是同样的“最佳”他们自己。考虑到你的应用程序的其余部分,一个是否有意义,只有你才能确定,因为我们只知道你在这里写了什么。我的问题是最好使用什么。无论如何,我选择了处理程序。Thanks@Edu当前位置没有“最佳”,至少在抽象意义上是这样。任何一种都是同样的“最佳”他们自己。考虑到你的应用程序的其余部分,一个是否有意义,只有你才能确定,因为我们只知道你在这里写了什么。