让变量只能在这个线程内被读写,在其他线程内无法被访问.以键值对存放变量,并继承弱应用,内存随时会被回收,用完要remove不然会内存泄漏,使用的时候直接设置值就可以了,键就是ThreadLocal本身,所以一个ThreadLocal只有一个值,但是可以有多个ThreadLocal
public class MainActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ThreadLocal<String> mLocal = new ThreadLocal<String>(){ @Override protected String initialValue(){ return "init value"; } }; System.out.println(mLocal.get()); mLocal.set("设置"); System.out.println(mLocal.get()); } }
可以看一下ThreadLocal源码,按住ctrl鼠标左击ThreadLocal,如果没有出现就是没有安装resource源码包,打开sdkmanager勾选安卓9.0然后apply