将Cursor作为参数传递给方法

时间:2015-09-08 16:28:16

标签: android android-sqlite android-contentprovider android-cursor

我在Android应用程序中有一个关于Cursor使用的快速问题。

我的应用程序中有多个位置可以在同一个表中查询自定义内容提供程序。当我收到光标时,我解析数据并返回包含信息的数据结构。

由于这可以在我的应用程序中的多个位置完成,我决定将这项工作集中在一个实用程序类中,所以我的方法看起来像这样:

public static String[] getInfoFromCursor(Cursor c)
{
   String[] blah = ....
   //do work
   return blah 
}

所以我有两个关于最佳实践的问题:

1-将这项工作集中在实用程序类中是一个好主意,还是不必要的优化。

2-我应该关闭方法中的光标和用于调用所述方法的原始光标,还是在此方法返回足够后关闭它一次?

非常感谢您的意见。

1 个答案:

答案 0 :(得分:3)

  

将这项工作集中在实用程序类中是一个好主意,还是不必要的优化

它胜过维护代码的多个副本。 "不必要的优化"问题通常会出现性能问题(例如,试图减少CPU或堆使用量),有时你可能会追逐一只独角兽来追求不值得付出的积蓄。你可以采取任何措施使你的应用程序更易于维护,这通常是一个好主意。

  

我应该关闭方法中的光标和用于调用所述方法的原始光标,还是在此方法返回足够后将其关闭一次?

虽然我不知道在关闭已经关闭的游标时出现问题,但关闭它一次就足够了。我建议您在关闭光标的位置和时间保持一致,以帮助您确保 在正确的位置关闭光标。