2013-10-29 32 views
0

當我使用SQLite來攜帶我的數據並使用遊標和適配器時,我應該使用遊標加載器??。這是最佳做法嗎?我不太清楚何時使用光標加載器。我應該只在我的應用與其他應用共享數據時才使用它?我的問題來了,因爲它使用遊標+適配器+ listView真的很煩人。有時候notifyDataSetChanged有效,有時候不會,所以它有時候非常棘手。我開始閱讀關於遊標加載器的內容,但是我不確定這是否是一個特別的工作,或者我可以用它作爲解決方法。何時使用光標加載器?

任何澄清將非常感謝!

謝謝你們。

回答

1

使用加載器來確保所有的遊標操作都是異步完成的,從而消除了阻塞UI線程的可能性。

當使用notifyDataSetChanged而使用的CursorAdapter請勿使用:

db.updateData(); 
yourCursor = db.getData(); 
yourAdapter.changeCursor(yourCursor); 
+0

所以,我應該使用的遊標裝載機?即使我的應用程序不會與其他應用程序共享數據庫? – kiduxa

+0

光標加載器不啓用數據庫共享。如果你想與其他應用程序共享數據庫使用ContentProvider請參閱[this](https://thenewcircle.com/s/post/1375/android_content_provider_tutorial)。 Android 3.0引入了光標加載器,以便異步地實現光標操作。如果您只讀取小塊數據,則可以不使用光標加載器。閱讀[this](http://www.androiddesignpatterns.com/2012/07/loaders-and-loadermanager-background.html)更多關於光標加載器 – ramaral

+0

我提到了數據庫共享,因爲光標加載器使用contentProviders和contentPorviders,正如你所說用於在應用程序之間共享數據。這就是爲什麼林混淆,但沒有我不需要共享數據庫。那麼,我是否應該只在擁有大型數據庫的情況下才使用光標加載器? – kiduxa