我想发送一个开始活动的意图。我希望能够修改这个意图。然后,当活动被销毁并重新创建时,我希望在调用getIntent()
时这些修改仍然存在。
目前,只要活动没有被破坏,修改意图就可以正常工作。如果有,则在重新创建活动时,它将获得启动它的原始意图,而不是第一次启动时收到的可能已修改的副本。
最佳答案
只要主活动仍然存在,修改删除额外数据的意图就可以正常工作,但如果销毁/重新创建了主活动,则会返回额外数据。
这是因为您正在修改Intent
的本地副本,而不是保存任务列表的操作系统进程中维护的主副本。
如果这些数据确实是活动的实例状态,那么应该通过onSaveInstanceState()
将其保存为实例状态,然后通过onRestoreInstanceState()
将其恢复。库的用户需要将这些事件转发给您。
如果您不希望将其视为实例状态,而是进程状态,请将数据存储在单例中。
如果数据应该存在于进程的生命周期之外,请将其写入磁盘的某个位置。
我可以将数据保存在宿主应用程序的广播接收器中,然后在代码中使用和删除它
如果通过“将数据保存在宿主应用程序的广播接收器中”,那是毫无意义的。一个清单登记的接收者只为一个广播服务,然后就完成了。