jroal / a2dpvolume

Automatically exported from code.google.com/p/a2dpvolume
http://jimroal.com/slist.htm
95 stars 33 forks source link

Data Loss in Android Apps (Activity Lifecycles) #303

Open davirec opened 1 year ago

davirec commented 1 year ago

In the double screen rotation test to detect data loss, an application failure was identified: fragment loss.

Before and after double screen rotation

The occurrence of data loss is a common problem that arises when important data is unintentionally deleted or when state variables are mistakenly assigned with default or initial values. This issue is closely related to the lifecycle of the activity (1). During a screen rotation, for example, the activity is destroyed and resumed, and if the developer fails to save the variables before destruction and restore them after creation, data loss is likely to occur. To prevent such data loss, developers must implement the logic necessary to save the activity state in the onSaveInstanceState() callback method and restore its state in the onRestoreInstanceState() callback method.

Another effective approach to avoiding data loss problems is to utilize the view model, which is specifically designed to store and manage UI-related data in a lifecycle-conscious manner (2). By employing this technique, developers can minimize the risk of data loss and ensure the smooth functioning of their applications.

References:

https://developer.android.com/guide/components/activities/activity-lifecycle https://developer.android.com/topic/libraries/architecture/viewmodel