当应用移至后台时,Android是否会清除“视图”中的数据?

时间:2018-08-21 08:15:31

标签: android android-activity view android-lifecycle

我对我的应用程序具有以下安全要求:

验证应用是否在后台运行时从视图中删除敏感数据。

我的问题是, Android会在背景显示时从视图中删除数据吗?

根据android documentation我所知道的是:

默认情况下,系统使用Bundle实例状态在您的活动布局中保存有关每个View对象的信息(例如,输入到EditText小部件中的文本值)。

一种解决方案是我可以清除所有视图,然后使用以下方法保存状态

www.client.com/rails-app

但是我不知道Android操作系统是否清除视图中的数据。任何帮助将不胜感激。

谢谢

3 个答案:

答案 0 :(得分:3)

当应用程序移至后台后,Android 不会自动回收视图。

  

系统在需要释放RAM时终止进程;系统杀死给定进程的可能性取决于当时的进程状态。

如果决定杀死视图或需要内存,它只会回收视图。或更改配置后。

  

用户希望活动的UI状态在整个配置更改(例如轮换或切换到多窗口模式)中保持不变。但是,默认情况下,当发生这样的配置更改时,系统会销毁活动,从而清除活动实例中存储的所有UI状态。

总的来说,我认为您的方法正确。

如果需要,只需使用onStop()(而不是onPause(),因为某些对话框和其他交互会从“活动”中移出焦点)来清除视图。

答案 1 :(得分:0)

看看android活动的生命周期https://developer.android.com/guide/components/activities/activity-lifecycle

确保清除所有数据的一种方法是覆盖onPause函数并手动清除数据。当您的应用程序移至后台时,将调用onPause。

答案 2 :(得分:0)

不,它不会删除数据,因为根据Android的生命周期,当您为视图提供背景时,将调用onPause()和onResume(),并且视图及其实例位于onCreate()方法中。

因此,通过从后台启动视图,不会删除视图数据。