The problem of low-memory devices of B2G is killing apps very often to
release memory for the foreground app.  It makes background apps lost
their context, and being restarted for next launch.  The problem is user
would like to keep the states of apps when they revisit the app next
time.  So, we need a way to restore the states of apps being killed.

One of ideas is to leverage the unload event and the sessionStorage
API.  Before the app process was killed, an unload event would be
dispatched to the document.  The app save its state on the
sessionStorage in the event handler, so it could be restored for next
time of launching.

When a process is being killed, the content process tries to dispatch an
unload event to the document.  If the document handles the event, the
B2G assume it is session aware, and will save the states, and restore
itself next time.  So, if the unload event is handled, the content of
sessionStorage and cookie are sent to the b2g process before the process
being dead.  Next time, the user revisit the app, the sessionStorage and
cookie are restored from the data at the b2g process.  The app could
restore it's state from the data in the sessionStorage and cookie.

For best side of this approach is that we could keep the app being
killed in the card view, and restore it to the state before being killed
while the user revisit it next time.  It provides better experience to
the user.

The problem is, I know, we are unlikely to encourage people to use
sessionStorage or cookie as a synchronize API.  Is there any other
option?

Please give me feedbacks.

-- 
Sinker
--
天教懶漫帶疏狂
_______________________________________________
dev-b2g mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-b2g

Reply via email to