In the newer versions of Android (> 3.0) there is an onscreen button that will display a list of the recent apps with their names and snapshots. Even though my app itself is password protected, this overview might show sensitive data in that snapshot. So is there any way to force a certain image (like a logo) to be shown rather than let the OS decide?
It seems to be impossible for now. There's a method called onCreateThumbnail
but it is not used currently by the system I guess, since it is not called. I see two possible solutions:
1. To disable thumbnail on the activity containing sensitive data by adding FLAG_SECURE
to your window: getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
2. To exclude your activities from recent apps, set android:excludeFromRecents
attribute to true for activities in AndroidManifest.xml
The solution provided by Azat continues to be valid also in Lollipop.
Just a note, if you want to continue to not see snapshots in recent list for the entire app, ALL the implemented activities should specify in the onCreate()
method the flag getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
before setContentView();
Otherwise a snapshot in the recent list will show the first activity without the flag if the user navigated through it.
There is an approach to archive this requirement besides using that flag is HardwareKeyWatcher but it can not cover all of the cases due to fragmented device configurations and custom ROMs, then we have to fulfill missing cases with other approaches.
To ease the way of implementation, we had built a lib for Recent Apps thumbnail hiding mechanism, which supports implement a custom layout to show an empty screen with the app's logo when the app is going to Recents Screen.
© 2022 - 2024 — McMap. All rights reserved.