我知道这个问题在这里已经被提出了很多次,但是那些解决方案并不适用于我的情况。当活动开始时,我会对屏幕进行截图。我将我的代码放在onCreate的底部执行。它在5次中有4次非常好用,但是第5次屏幕尚未渲染,导致截图变成黑色。
我的解决方法是在onCreate结尾处启动一个AsyncTask来执行截屏代码。如果我加上200ms的延迟,那么它能成功9次中的10次。500ms的延迟可以让它100%成功,但你会注意到延迟。这似乎也是一个糟糕的解决方案,因为这500ms是一个任意的数字,在所有设备上都可能无法正常工作。
如何知道UI何时呈现,以便我可以进行截图呢?