我需要使用正则表达式在我的应用程序中搜索文本文件(大约 40MB),正如您可以想象的那样,通常需要 1 分钟左右才能完成。而且我必须反复这样做。
我想知道我是否可以在第一次搜索后将这些文件保存在 RAM 中。我可以这样做吗?我的意思是,找到一种方法来明确地说在 RAM 中保留一段时间。
将结果保存在将保存搜索结果的自定义对象中。这会将它保存在 RAM 中(只要您保留对它的引用)。
还要记住,在 Android 设备中分配 40 MiB 的 RAM 并不是一个好主意,因为在许多低端设备中 RAM 非常有限。这可以使您的应用程序在寻求释放内存时成为 Android 的一个非常好的目标。
考虑将您的搜索结果放在 aWeakHashMap
中,其中的键仅在您需要值存在的持续时间内存在,例如 a 的范围Activity
。不过要注意内存问题。在某些设备上,您的应用程序进程可能只有低至 16M的堆大小。