简体   繁体   中英

getDrawingCache return null when run monkey

I have the follow code to get the screenshot

    View screen = getWindow().getDecorView();
    screen.setDrawingCacheEnabled(true);
    screen.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
    screen.buildDrawingCache();

    Bitmap bitmap = screen.getDrawingCache();

The code is in onOptionsItemSelected in UI thread.

It runs fine when I test it manually. However, when I run the app with monkey, bitmap is null I am not sure if it always null in monkey mode or just occasionally since monkey's randomness.

Any ideas that why monkey could behave differently? I do not want to blindly add a null pointer checker in later code.

Thanks

you should use buildDrawingCache(true) because buildDrawingCache() is same as buildDrawingCache(false).Make sure to copy bitmap to another one before using getDrawingCache() like below.

Bitmap bt=Bitmap.createBitmap(screen.getDrawingCache());

because its copy our bitmap before recycle() if you call setDrawingCacheEnabled(false).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM