#8 MutableLiveData定~簡単な例
2360 ワード
アプリを作成すると..。
変数値の変化を検出すれば、きっと便利な時があるに違いない.
傍観者モードは使えますが、実現自体も複雑…使用頻度の低い場所に2つのクラスを加えて少し乱れを実現...
そして会ったのはMutableLiveData
公式文書を見ても、あまり理解できず、様々なブログを見ても例題が少し分かりにくく複雑だと思います.
実際、私は初めてアプリケーション開発を勉強してから、長い例を見て、私は多くの考えを持っています.
「どうしてこんなに長くて複雑なの?」
「ライブラリを書いたのにどうしてコードがこんなに長いの?」
「どう考えても特別な機能がないのに、どうしてこんなに雄大に実現したの?」
私にとって傍観者モードはそうです.
だから最初は。
傍観者モードは非常に乱雑にスキップされますMutableLiveDataは実装が複雑であると考えてスキップした.
そのため、結論はThreadです.Threadではsleepを500~1000 msに保ち、while(true)は終了する.非常に無知で性能が落ちる方法ですが、他に方法はないと言い訳したいです.
角度を見つけてMutableLiveDataを開きました
どうしたんですか.とても簡単です
public class MainActivity extends AppCompatActivity {
private MutableLiveData<String> m_data = new MutableLiveData<>();
// 그냥 이렇게 선언, 초기화 해주고!
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (!m_data.isEmpty()) { // Null Check 딱 해주고!
Log.d("LOG", m_data.getValue()); // 로그 찍어주고!
}
m_data.observe(MainActivity.this, new Observer<String>() {
@Override
public void onChanged(String string) {
Log.d("LOG", m_data.getValue()); // 결과 확인을 위해 로그를 찍어주고!
}
});
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
m_data.setValue("Change"); // setValue() 해주면!
}
});
本当に簡単ですね。
プロセスはこうです.
注意事項
ただし、setValue()はmain Threadで呼び出さなければなりません.他のThreadでMutableLiveDataの値を変更する場合は、PostValue()を使用します.
Reference
この問題について(#8 MutableLiveData定~簡単な例), 我々は、より多くの情報をここで見つけました https://velog.io/@gn000123/8-MutableLiveData-정말-쉬운-예제テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol