如何防止调用 recreate 时丢失数据 activity
how to prevent loss of data on calling recreate activity
当用户想要更改时,我必须更改 activity 的主题。
为此,我必须在设置主题后调用 recreate() 来激活主题。
但是我的 Activity 从 Web 获取数据并在 Recycler 视图中显示给用户。
每次换主题,都在刷新数据,我要防止这个。
除了保存在数据库中之外,在调用 recreate() 时是否有其他方法可以保存数据?
我尝试覆盖 onSaveInstanceState();但是在调用 recreate 时, onCreate() 中的 savedInstanceState 似乎是 'null' 。
您应该将数据保存在一个文件中,例如 SQLite 数据库或 SharedPreferences
Activity 的生命周期会改变很多次,您无法阻止这种情况,您的数据应该在 OnStart 或 OnResume 等事件中保存和检索
作为另一个建议,不要使用静态变量之类的东西来保存您的数据,静态变量存储在堆中,当您的 Activity 未使用时将被清除 Android OS 需要更多内存
当用户想要更改时,我必须更改 activity 的主题。 为此,我必须在设置主题后调用 recreate() 来激活主题。 但是我的 Activity 从 Web 获取数据并在 Recycler 视图中显示给用户。 每次换主题,都在刷新数据,我要防止这个。
除了保存在数据库中之外,在调用 recreate() 时是否有其他方法可以保存数据?
我尝试覆盖 onSaveInstanceState();但是在调用 recreate 时, onCreate() 中的 savedInstanceState 似乎是 'null' 。
您应该将数据保存在一个文件中,例如 SQLite 数据库或 SharedPreferences
Activity 的生命周期会改变很多次,您无法阻止这种情况,您的数据应该在 OnStart 或 OnResume 等事件中保存和检索
作为另一个建议,不要使用静态变量之类的东西来保存您的数据,静态变量存储在堆中,当您的 Activity 未使用时将被清除 Android OS 需要更多内存