How to use Lifecycle-aware components in an Android app?

Lifecycle-aware components of the Android Architecture Components library help you manage your app's lifecycle events seamlessly without the hassle of dealing with the complex lifecycle states directly. These components make it easier to create apps that are more robust and responsive to user interactions.

Using ViewModel

One common lifecycle-aware component is the ViewModel, which is designed to store and manage UI-related data in a lifecycle-conscious way. The ViewModel is tied to the lifecycle of an activity or fragment and survives configuration changes such as screen rotations.

Example of ViewModel Implementation

// ViewModel class class MyViewModel : ViewModel() { private val myData: MutableLiveData = MutableLiveData() fun getData(): LiveData { return myData } fun setData(data: String) { myData.value = data } } // MainActivity class class MainActivity : AppCompatActivity() { private lateinit var viewModel: MyViewModel override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Obtain the ViewModel viewModel = ViewModelProvider(this).get(MyViewModel::class.java) // Observe the data viewModel.getData().observe(this, Observer { data -> // Update the UI textView.text = data }) } }

Android Lifecycle-aware components ViewModel LiveData Architecture Components App Development