我对我的应用程序具有以下安全要求:
验证应用是否在后台运行时从视图中删除敏感数据。
我的问题是, Android会在背景显示时从视图中删除数据吗?
根据android documentation我所知道的是:
默认情况下,系统使用Bundle实例状态在您的活动布局中保存有关每个View对象的信息(例如,输入到EditText小部件中的文本值)。
一种解决方案是我可以清除所有视图,然后使用以下方法保存状态
www.client.com/rails-app
但是我不知道Android操作系统是否清除视图中的数据。任何帮助将不胜感激。
谢谢
答案 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()方法中。
因此,通过从后台启动视图,不会删除视图数据。