美文网首页
解决子线程给成员变量赋值,主线程中无法引用成员变量的问题(log

解决子线程给成员变量赋值,主线程中无法引用成员变量的问题(log

作者: 哦呀比 | 来源:发表于2017-04-12 22:52 被阅读275次
解决子线程给成员变量赋值,主线程中无法引用成员变量的问题(log会显示主线程中的成员变量为空指针)

这样的log是没有错误的。

解决子线程给成员变量赋值,主线程中无法引用成员变量的问题(log会显示主线程中的成员变量为空指针)

主线程中的log会提示news为空指针

子线程无法更新UI众所周知,需要通过Handler 和Message之间的通信来更新UI。成员产量无法引用,估计也是这个原因(目前为止还没有找到最准确的原因)。

解决方法,还是用Handler和Message之间的通信。而我想传递的不止一个值,而是多张图片的url.可以借住Bundle对多数据打包,然后用Arraylist进行一个数组式储存

解决子线程给成员变量赋值,主线程中无法引用成员变量的问题(log会显示主线程中的成员变量为空指针)

如图所示,先对数据进行数组式储蓄,然后Bundle打包,通过Message传送给主线程中的Handler来接收。

解决子线程给成员变量赋值,主线程中无法引用成员变量的问题(log会显示主线程中的成员变量为空指针)

最后在主线程中接收调用,就可以使用了。

本人小白,有些地方说的可能不准确甚至错误,还希望有人指出

相关文章

  • 解决子线程给成员变量赋值,主线程中无法引用成员变量的问题(log

    这样的log是没有错误的。 主线程中的log会提示news为空指针 子线程无法更新UI众所周知,需要通过Handl...

  • java内存模型

    引用: Java内存模型 java内存模型线程栈:本地变量,堆:对象,对象成员变量,静态成员变量 如果两个线程同时...

  • Java transient关键字

    Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,...

  • ThreadLocal源码学习

    线程本地变量:线程本地变量通常是一个类中的私有静态的成员变量。我们可以在不同的线程中的调用线程本地变量的get和s...

  • JavaScript变量——栈内存or堆内存

    成员变量在堆,局部变量在栈。堆是线程都可以访问的,而不同线程的栈是无法互相访问的。成员变量可以理解为属性,对象的属...

  • 并发编程 ThreadLocal

    概述 1个对象被多个线程同时引用且操作(比如作为线程的成员变量),会引发线程安全的问题。但是可以通过给该对象设置T...

  • 共享资源的线程安全性

    局部变量 局部对象变量的引用 对象成员变量 线程控制权原则 如果某段代码可以正确的被多线程并发的执行,那么我们就称...

  • 在atomic修饰下什么情况不安全

    1、直接多线程给成员变量比如_name赋值。2、你比如array,你atomic了,但是array自己的对象有可能...

  • Volatile 关键字

    Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时...

  • 成员变量、实例变量和属性变量

    1、成员变量和实例变量 成员变量:所有在{ }中声明的变量都是成员变量实例变量:实质是指成员变量中所有有指针引用类...

网友评论

      本文标题:解决子线程给成员变量赋值,主线程中无法引用成员变量的问题(log

      本文链接:https://www.haomeiwen.com/subject/ekevattx.html