在 Activity 中设置 savedInstanceState Bundle
set savedInstanceState Bundle in Activity
有没有办法手动设置 savedInstanceState Bundle?
我需要在 savedInstanceState 模式下启动一个 activity,在 onCreate 中,savedInstanceState Bundle 不会为 null 。我的意思是用我的自定义数据恢复 activity。谢谢
这将使您的代码变得不可读并且将来难以维护。此外,您将针对平台的架构进行工作。
正确的做法是在启动Activity
的Intent中发送数据,如果bundle为null则获取onCreate
中的所有数据,如下所示:
if(savedInstanceState == null)
//Get data from db, resources etc.
else
//Do the restoring using the bundle,
//or just let it pass here and handle it in
//`onRestoreInstanceState`, both are correct
请不要仅仅因为以正确的方式进行操作会花费更多时间就试图找到黑客修复程序。将来会有回报的! :-)
作为旁注,请记住,Intent
开始一个 Activity
不应该保存大块数据,因为在一个组件之间传输的数据有 1mb 的跨进程限制时间.
有没有办法手动设置 savedInstanceState Bundle?
我需要在 savedInstanceState 模式下启动一个 activity,在 onCreate 中,savedInstanceState Bundle 不会为 null 。我的意思是用我的自定义数据恢复 activity。谢谢
这将使您的代码变得不可读并且将来难以维护。此外,您将针对平台的架构进行工作。
正确的做法是在启动Activity
的Intent中发送数据,如果bundle为null则获取onCreate
中的所有数据,如下所示:
if(savedInstanceState == null)
//Get data from db, resources etc.
else
//Do the restoring using the bundle,
//or just let it pass here and handle it in
//`onRestoreInstanceState`, both are correct
请不要仅仅因为以正确的方式进行操作会花费更多时间就试图找到黑客修复程序。将来会有回报的! :-)
作为旁注,请记住,Intent
开始一个 Activity
不应该保存大块数据,因为在一个组件之间传输的数据有 1mb 的跨进程限制时间.