Articles of 缓存

调用reflect方法时Android中的SecurityException

我正在开发一个Cache-Cleaner应用程序,当我在PackageManager中调用一个隐藏方法时,我得到了一个SecurityException,虽然我给了我的应用程序使用权限“DELETE_CACHE_FILES” 用途 – 权限: uses-permission android:name=”android.permission.DELETE_CACHE_FILES” uses-permission android:name=”android.permission.CLEAR_APP_CACHE” uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” uses-permission android:name=”android.permission.CLEAR_APP_USER_DATA” uses-permission android:name=”android.permission.GET_PACKAGE_SIZE” 反映方法: Method method = getPackageManager().getClass().getMethod(“deleteApplicationCacheFiles”, String.class, IPackageDataObserver.class); 错误: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at .MainActivity$1.onClick(MainActivity.java:70) at android.view.View.performClick(View.java:2485) at android.view.View$PerformClick.run(View.java:9080) at android.os.Handler.handleCallback(Handler.java:587) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:123) at android.app.ActivityThread.main(ActivityThread.java:3683) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) at dalvik.system.NativeStart.main(Native Method) Caused […]

如何在Android中实现ListView缓存

我有一个包含大量数据的ListView。 第一次,我从Webservice加载所有数据。 现在我想缓存这些数据,这样,如果我要再次打开该页面,我可以从缓存中获取数据,而不是再次查询Web服务。 我怎么做?。

毕加索图像缓存

我想用Picasso图像缓存下载以下图像下载代码。 DownloadImage downloadImage = new DownloadImage(); downloadImage.execute(advert.getImgUrl()); private class DownloadImage extends AsyncTask { @Override protected Bitmap doInBackground(String… arg) { Bitmap bmp = null; try { URL url = new URL(arg[0]); bmp = BitmapFactory.decodeStream(url.openConnection() .getInputStream()); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); return null; } return bmp; } @Override protected void […]

如何正确设置Volley以从URL下载图像

我知道Volley应该简单地下载和缓存图像,但是我一直在努力实现它。 我已经浏览了网络以及有关凌空的stackoverflow上的许多文章,但我发现的所有示例似乎都不适合我。 我只想使用volley来下载和缓存来自给定URL的图像,而不是进行任何HTTP JSON REST处理。 只需获取给定的URL,下载位图并将它们设置为imageview,然后将它们添加到缓存中。 这是我迄今为止的最新尝试。 如何正确加载和缓存图像? if (data.getImageUrl() != null) { try { holder.thumbnail.setTag(data.getImageUrl()); Cache cache = ImgController.getInstance().getRequestQueue().getCache(); Cache.Entry entry = cache.get(data.getImageUrl()); if (entry != null) { try { String cImg = new String(entry.data, “UTF-8”); LruBitmapCache bitmapCache = new LruBitmapCache(); holder.thumbnail.setImageBitmap(bitmapCache.getBitmap(cImg)); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } else { ImageLoader imageLoader […]

使用getDrawingCache保存视图位图会显示黑色图像

我用getDrawingCache和getDrawingCache尝试的一切都无法正常工作。 系统正在制作图像,但它看起来只是黑色。 其他人似乎也有类似的问题,但答案似乎太复杂或与我的情况无关。 以下是我看过的一些内容: 像位图一样保存视图,我只得到黑屏 屏幕截图显示黑色 getDrawingCache始终返回相同的Bitmap 在Android上将视图转换为位图 位图未正确保存仅黑色图像 自定义视图转换为位图返回黑色图像 这是我的代码: view.setDrawingCacheEnabled(true); Bitmap bitmap = view.getDrawingCache(); try { FileOutputStream stream = new FileOutputStream(getApplicationContext().getCacheDir() + “/image.jpg”); bitmap.compress(CompressFormat.JPEG, 80, stream); stream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } view.setDrawingCacheEnabled(false); 我在下面分享我的答案,以防其他人犯同样的错误。

在Parse中,我可以强制获取相关的ParseObjects吗?

在Parse安卓文档中,它表示默认情况下不会获取相关的ParsePbject ,这意味着有一个设置可以获取它们。 它后来说没有调用fetchIfNeeded就无法获取它们。 这是什么? 我肯定需要获取相关的ParseObject ,并且更愿意这样做,而不必进行多个请求。 那可能吗? By default, when fetching an object, related ParseObjects are not fetched. These objects’ values cannot be retrieved until they have been fetched like so:

WebView和GridView进入ScrollView,View太大而无法适应绘图缓存

我有布局内存问题。 当我有一个大型webview时,它没有显示任何内容,并且logcat显示“View太大而无法适应绘图缓存”。 布局是:

在Android VideoView / MediaController上禁用缓冲

我们正在三星Galaxy Tab上编写Android应用程序。 我们有内窥镜(医疗手术摄像头)作为DV输入,我们希望将DVvideo直播到平板电脑。 作为流媒体服务器,我们有VLC播放器和RTSP流。 编码工作正常,通过网络(rtsp)流到另一台计算机是好的(<1s)。 但是,如果我们在Galaxy Tab上打开RTSP流,则会有6到7秒的延迟。 我试图设置比特率编码(即使最低不起作用,流延迟结果相同)。 所以我认为Android本身必须有某种网络缓存或视频缓存。 我用Google搜索并没有find一种方法来禁用甚至修改videoview / mediacontroller上的缓存。 有没有人知道如何调整Android Streaming View? 编辑:我发现必须是限制video流速度的内部缓冲区大小。 LogCat告诉我AweSomePlayer是Videoplayer的负责人。 那么下一个问题:如何改变awesomeplayer缓冲大小? 我认为它是用cpp编写的。 如何通过eclipse / java / android访问这个预编译的代码?

在Android上Context.getCacheDir()似乎返回一个我无法创建子目录的目录

Android不允许在cacheDir中创建子目录吗? 鉴于第三方(例如advendors)肯定需要缓存自己的文件,我为我的缓存文件创建子目录并让我集成的第三方管理自己的缓存文件非常有意义。 有谁知道如何设置权限,以便您可以创建子目录? 防爆。 以下代码似乎始终无法创建子目录。 File cacheDir = context.getCacheDir(); File subDir = new File(cacheDir, “subdir”); if ( !subDir.exists() ) { if ( !subDir.mkdirs() ) Log.w(TAG, “Failed to create subdirectory in cache”); }

MediaPlayer / VideoView – 从URL流式传输然后保存video进行缓存?

我想从URL(HTTP)流式传输流优化video,以便在开始播放之前将延迟时间降至最低,然后将其保存在缓存中以供后续播放。 但是,我似乎无法做到这一点,因为MediaPlayer / VideoView似乎没有提供任何方法来处理我可以用来将其写入文件的video。 我需要首先流式传输然后第二次下载以便能够缓存它,或者放弃流式传输并首先下载整个事情,这似乎很疯狂。 我已经把整件事记在了内存中,但是Android API并没有让我访问它。 其他人不久前曾问过这个问题,但回应很少。 有没有人对此有明确的答案?