将 Cursor 作为参数传递给方法
Passing a Cursor as an argument to a method
我有一个关于我的 Android 应用程序中 Cursor 使用的快速问题。
我的应用程序中有多个地方可以查询相同的 table 我的自定义内容提供商。当我收到游标时,我解析数据和 return 包含信息的数据结构。
因为这可以在我的应用程序的多个地方完成,我决定将这项工作集中在一个实用程序中 class 所以我的方法看起来像这样:
public static String[] getInfoFromCursor(Cursor c)
{
String[] blah = ....
//do work
return blah
}
所以我有 2 个关于最佳实践的问题:
1- 将这项工作集中在实用程序中是个好主意 class 还是这是一种不必要的优化。
2- 我应该同时关闭方法内的游标和用于调用所述方法的原始游标,还是在此方法 returned 足够后关闭一次?
非常感谢您的意见。
Is it a good idea to centralize this work in a utility class or is this a case of unnecessary optimization
它胜过维护代码的多个副本。 "Unnecessary optimization" 问题通常更多地出现在性能问题上(例如,试图减少 CPU 或堆使用),有时您可能会追逐独角兽以追求不值得付出努力的节省。任何可以使您的应用程序更易于维护的事情通常都是一个值得追求的好主意。
Should I be closing both the cursor within the method and the original one used to call said method or is closing it once after this method has returned enough?
虽然我不知道关闭已经关闭的游标有什么问题,但关闭一次就足够了。我建议您在关闭光标的位置和时间保持一致,以帮助您确保确实在正确的位置关闭光标。
我有一个关于我的 Android 应用程序中 Cursor 使用的快速问题。
我的应用程序中有多个地方可以查询相同的 table 我的自定义内容提供商。当我收到游标时,我解析数据和 return 包含信息的数据结构。
因为这可以在我的应用程序的多个地方完成,我决定将这项工作集中在一个实用程序中 class 所以我的方法看起来像这样:
public static String[] getInfoFromCursor(Cursor c)
{
String[] blah = ....
//do work
return blah
}
所以我有 2 个关于最佳实践的问题:
1- 将这项工作集中在实用程序中是个好主意 class 还是这是一种不必要的优化。
2- 我应该同时关闭方法内的游标和用于调用所述方法的原始游标,还是在此方法 returned 足够后关闭一次?
非常感谢您的意见。
Is it a good idea to centralize this work in a utility class or is this a case of unnecessary optimization
它胜过维护代码的多个副本。 "Unnecessary optimization" 问题通常更多地出现在性能问题上(例如,试图减少 CPU 或堆使用),有时您可能会追逐独角兽以追求不值得付出努力的节省。任何可以使您的应用程序更易于维护的事情通常都是一个值得追求的好主意。
Should I be closing both the cursor within the method and the original one used to call said method or is closing it once after this method has returned enough?
虽然我不知道关闭已经关闭的游标有什么问题,但关闭一次就足够了。我建议您在关闭光标的位置和时间保持一致,以帮助您确保确实在正确的位置关闭光标。