12

我试图理解一些东西,我相信这对某些人来说是非常基础的。

我到处读到 startManagingCursor 方法已被弃用,您应该使用 CursorLoader 类。但这是否意味着即使支持 API 级别 < 11 的应用程序也应该使用 CursorLoader 类?还是说如果你打算只支持 Honeycomb 及以上,那么使用 cursorLoader?

我似乎无法使用 api 4 导入游标加载器类,所以我假设使用 CursorLoader 直到 Android 3.0+ 才适用,但是有人可以帮我验证一下吗?

谢谢

4

1 回答 1

21

我到处读到 startManagingCursor 方法已被弃用,您应该使用 CursorLoader 类。

如果你愿意继承FragmentActivity,你可以使用LoaderAndroid Support 包中的框架实现,一直追溯到 Android 1.6。

话虽如此,Android 中的“已弃用”通常意味着“我们将继续支持此功能,但我们认为有更好的解决方案”。您当然可以startManagingCursor()在 API 级别 11+ 上使用。但是,托管游标的问题(特别是它们requery()在主应用程序线程上的活动重新启动时)仍然存在,在较旧和较新的 Android 版本上。

但这是否意味着即使支持 API 级别 < 11 的应用程序也应该使用 CursorLoader 类?

你当然可以,而且,在其他条件相同的情况下,你可能应该这样做。但是,其他所有条件很少相同,并且该FragmentActivity要求可能对您来说是个问题。

如果你现在正在开发一个新的应用程序,你应该从一开始就考虑碎片,在这种情况下你FragmentActivity无论如何都会使用,因此使用Loader应该不是问题。

我似乎无法使用 api 4 导入游标加载器类

Android 支持包的实现Loader适用于 API 级别 4 及更高级别。

于 2012-03-19T14:10:44.477 回答