> Would you like to mention your device, "rom" and applications?
SonyEricson sk17i
It's preinstalled rom.
As for applications - I have several 10s installed. Especially bad in state saving is preinstalled browser, address book and mail client. As for others - Yandex maps (the most widely used russian maps app) looses state even if switching from it for a moment to read incoming SMS. Springpad looses dialog content even when turning from portrait to lanscape to type on hardware keyboard. There are many more but I don't remember right now.
2011: The Year of Linux Disappointments (Datamation)
Posted Dec 16, 2011 21:27 UTC (Fri) by khim (subscriber, #9252)
[Link]
Springpad looses dialog content even when turning from portrait to lanscape to type on hardware keyboard.
If application loses state when you switch from portrait to landscape mode then it's definitely not a problem with Android task switching approach.
Buggy applications can be created for any OS with any toolkit.
2011: The Year of Linux Disappointments (Datamation)
Posted Dec 16, 2011 22:07 UTC (Fri) by dlang (✭ supporter ✭, #313)
[Link]
actually, this is the same problem.
The android solution for the screen size changing is to have the application restart. This is a graceful restart as the application knows that it is happening and is given a chance to save it's state. The fact that it doesn't is a bug in the application, and reveals a place where the framework has sharp edges that make it easy for developers to mess up.
2011: The Year of Linux Disappointments (Datamation)
Posted Dec 17, 2011 10:52 UTC (Sat) by yoush (subscriber, #38940)
[Link]
> and reveals a place where the framework has sharp edges that make it
> easy for developers to mess up
I'd rephrase that as - it's hard for developers not to mess up
2011: The Year of Linux Disappointments (Datamation)
Posted Dec 18, 2011 1:57 UTC (Sun) by alankila (subscriber, #47141)
[Link]
Yeah I agree, it seems like the views in the view tree do not have their states saved when activity is destroyed in between. Activities are not very often destroyed in normal usage conditions, but definitely when memory is low they will be. Maybe task killers would also very negatively impact usage experience.
Applications can relatively easily workaround the orientation change problem: they may use the 3.0+ fragments, which can be set to be retained across orientation changes, or they may use the configChanges manifest attribute to declare that they handle orientation changes of their own. Still, all this adds to lines of code that are not obviously necessary until you do end up with applications getting constantly killed.
It seems that ICS also has some developer options, such as "Don't keep activities", which destroys each activity as soon as user leaves it. It might help developers notice deficiencies in their state saving. Hopefully this problem gets better. At any event, radical changes to simplify developer experience are too often foiled because of backwards compatibility requirements.