AndroidArchitecture架构学习之 LiveData学习

关于LiveData

最近livedata确实很好用,我自己仔细研究,深入探讨,努力学习,终于明白一点点新得所以写了点笔记。

什么是livedata

简单地说,LiveData是一个数据持有类。它具有以下特点:

  • 数据可以被观察者订阅;

  • 能够感知组件(Fragment、Activity、Service)的生命周期;

  • 只有在组件出于激活状态(STARTED、RESUMED)才会通知观察者有数据更新;

学习demo

最简单的Demo 学习liveData
参考githubDemo :githubDemo最简单的地址

public class LiveDataActivity extends AppCompatActivity{
    
    
    private TextView tvUsername;
    private MutableLiveData liveDataUsernameStr;
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_live_data);
        tvUsername=findViewById(R.id.tv_username);
        initDatas();
    }
    
    private void initDatas(){
        liveDataUsernameStr=new MutableLiveData<>();
        liveDataUsernameStr.observe(this, new Observer(){
            @Override
            public void onChanged(@Nullable String s){
                tvUsername.setText(s);
            }
        });
    }
    
    public void onClickMainThread(View view){
        liveDataUsernameStr.setValue("lixiaodaaaaMain");
    }
    
    public void onClickThread(View view){
        new Thread(new Runnable(){
            @Override
            public void run(){
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                liveDataUsernameStr.postValue("lixxiaodaaaaThread");
            }
        }).start();
    }
}

xml地址定义(UI页面)




    

    

你可能感兴趣的:(AndroidArchitecture架构学习之 LiveData学习)