在android中执行120k查询

时间:2012-09-07 19:42:12

标签: android sqlite

我正在为sqlite android做一些基准测试。如果我在执行前预加载总共120k,那么大多数设备是否有足够的内存?在查询正在执行时,还有其他线程正在进行,因此内存可能是问题所在。如何使用onLowMemory()方法?似乎没有太多关于使用该方法的例子。谢谢你的任何建议。

1 个答案:

答案 0 :(得分:2)

使用该方法就像在Activity中覆盖它一样简单。

但是,请仔细阅读documentation

  

当整个系统内存不足时调用此方法,并且   我想积极运行过程,试图收紧腰带。   虽然的确切位置是未定义 ,   通常情况下,所有后台进程都会发生      我们想要的进程托管服务和前台UI   避免杀人。

     

想要变得更好的应用程序可以实现此方法   释放他们可能持有的任何缓存或其他不必要的资源   on to。系统将在返回后为您执行gc   这种方法。

我不确定(并且文档没有定义)“后台进程”是否包含AsyncTask个实例和服务,或者只是后台应用程序,但我猜是这样的。

因此,当调用此方法时(如果它被调用),系统已经杀死了所有内容(优先级低于您的Activity),现在要求您在内存中释放任何不必要的资源。

所以,如果你想对低内存做出反应,这可能已经太晚了。


至于一般问题,如果大多数 Android设备的内存不足,我不知道。问题是,设备变化很大。

我也很难想象任何真实的情况,你需要在执行前预先加载(或堆叠)120k查询。您可以轻松地堆叠200并提交它们,而不是堆叠另外200个,依此类推。


我不确定为什么需要对此进行基准测试,但请不要对应用程序数据库中的默认条目执行120k查询。

您可以使用已填充的数据库传送应用程序,并将其从assets/ - 文件夹中复制出来。见android-sqlite-asset-helper