More information. We can confirm that calling display.save() on applicationSuspend will result in the application screen rendering black on applicationResume. This was confirmed on Samsung Galaxy Tab 10.1 running Android 4.0.4 (Tegra 2) and the Tabeo e2 running Android 4.2.2 (Tegra 3). I’m not sure if this is a chipset issue or not.
Since display.save() is effectively the only way to save a snapshot so we can recreate the user experience on resume (when using the discard canvasMode because we have to for performance), we are completely blocked trying to pass the Samsung Seller app certification process.
Specifically, Samsung states (as a top 10 reason for app certification failure):
Problems in the Background mode
- Pause/Resume issues
- Functions are not resumed when it comes to the Foreground Mode.
- Not be resumed but executed from start page when it comes to the Foreground Mode from the Background Mode.
- Functional issues
- UI errors are occurred when it comes to the Foreground Mode.
(http://developer.samsung.com/distribute/app-certification/top-10-failures-and-tips)
Currently our options are:
1) Allow the user’s data to be corrupted by the suspend/resume process by doing nothing.
2) Use display.save() and cause the screen to render black
3) On applicationResume, restart the application.
4) On applicationResume, restart the module (resulting in user data loss)
Options 1-3 will cause the application to get immediately rejected by Samsung.
We’re going to try using Option 4 but I’m pessimistic about the results.
On January 13th, Walter wrote in this thread that a fix was coming soon. We look forward to testing it!
Terry