Подтвердить что ты не робот

Когда Android делает свой недавний скриншот приложения?

Я разрабатываю приложение, которое имеет личную информацию и не должно отображать реальный снимок экрана в недавнем переключателе приложений Android. Я пробовал вариант этого решения, установив представление содержимого в ImageView внутри функции onPause, но кажется, что операционная система берет скриншот перед контентом вид изменяется на пользовательское изображение.

Я также знаю установку флажков параметров макета окна для защиты, что делает скриншот полностью белым, но я надеюсь, что там будет способом настроить скриншот.

Итак, мне интересно, в какой момент Android берет скриншот приложения для коммутатора приложений (в частности, в KitKat и Lollipop).

4b9b3361

Ответ 1

Взгляните на метод Activity.onCreateThumbnail - это именно то, что вы ищете, поскольку оно позволяет вам нарисовать собственный миниатюру для последнего экрана.

Вы получаете Canvas как один из параметров, в которых вы можете напрямую рисовать (или не рисовать). Главное, что вы должны вернуть true из этого метода, что указывает на то, что система сама не будет рисовать эскизы.

Самое простое решение:

@Override
public boolean onCreateThumbnail (Bitmap outBitmap, Canvas canvas) {
    // Do nothing or draw on Canvas
    return true;
}

или если вы хотите нарисовать свой собственный Bitmap

@Override
public boolean onCreateThumbnail (Bitmap outBitmap, Canvas canvas) {
    Bitmap myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.myBitmap);
    canvas.drawBitmap(myBitmap, 0, 0, null);

    return true;
}