etesync/android

The message isn't persisted when the app is paused

davirec opened this issue · 0 comments

In the double screen rotation test to detect data loss, an application failure was identified: message 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