8

我的应用程序的测试人员报告说:“最近应用程序列表中的应用程序缩略图根本没有调整。在我看来,它看起来像主屏幕壁纸(tolikdru:可能,只是透明矩形),或者像应用程序的绿色背景屏幕,但绝不是应用程序的真实快照。” 所以行为类似于这里描述的

我的设备是 Android 2.0,所以我无法检查和调试问题(最近应用程序中的缩略图是 Android 3.0+ 之后的版本)。因此,进一步的研究处于“盲目模式”。

我决定按照这里的建议使用 onCreateThumbnail() 手动强制创建应用缩略图。(为了简化一开始的任务,我没有捕捉真正的快照,而是采用了可绘制的闪屏。)

@Override
public boolean onCreateThumbnail(Bitmap outBitmap, Canvas thumbCanvas) {
    super.onCreateThumbnail(outBitmap, thumbCanvas);

    //splashscreen drawable to bitmap
    outBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.titel);

    //automatically scale to provided canvas 
    //(is the canvas provided as input ???)
    thumbCanvas.drawBitmap(outBitmap, 0, 0, new Paint());

    //is the outBitmap itself scaled to canvas or its copy???
    return true;
}

我不确定上面的代码是否正确,因为我无法测试它(见下文)。

根据文档,另一种可能的解决方案可能只是一个内部只有 super.onCreateThumbnail() 的虚拟 @Override onCreateThumbnail,因为文档说:

默认实现返回失败,不绘制缩略图; 如果需要,这将导致平台创建自己的缩略图。

但是onCreateThumbnail 方法不会触发,至少在我的 Android 2 上是这样。实际上这个技巧是为 Android 3+ 而设计的。这里(2012 年)和这里(2009 年)也有同样的报道 。在这两种情况下,都没有指定使用的 Android 版本。

那么请您帮忙解答以下问题:

1) 上面的代码是否适用于在最近应用列表中使用缩略图的 Android 3+ 设备?

2)如果没有,是否有任何其他解决方法可以使应用程序生成正确的缩略图(或我选择的任意可绘制)?

提前致谢!

4

1 回答 1

2

这是操作系统的问题。不幸的是,它似乎不起作用。如果你不希望人们出于某种原因从最近查看你的应用程序,你可以把

getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE)

作为活动的 onCreate() 方法的第一行。

于 2015-10-05T16:23:43.597 回答