我正在開發一個我需要非常快速完成的Android項目。在ListActivity中加載一個BIG SQLite數據庫
該應用程序的一個功能是加載SQLite數據庫內容並將其列入ListActivity內的ListView中。
該數據庫包含一些表格,其中2個表格非常大。
數據庫中的每個項目都有很多列,其中有我需要顯示至少2(名稱,價格),但最好是3
這似乎是一個很容易的事,因爲我需要的在這部分的應用程序中做的是讀取數據庫並列出它。我這樣做沒有任何問題,測試應用程序與小樣本數據庫。
在我的FIRST版本中,我使用光標獲取查詢,然後使用ArrayAdapter作爲列表的適配器,並且在查詢之後,我只是將光標從開始到結束循環,並且爲每個位置添加光標的內容適配器。
的onItemClickListener再次查詢數據庫,與其他參數(基本上我打開類),所以它清除適配器,然後循環光標和遍佈再加上自己的內容適配器。
該應用程序的工作就像一個魅力,但是當我用一個現實生活中,大數據庫(> 300MB),我突然接到我的應用程序採取非常長的顯示內容,有時甚至堵塞。
所以我做了一些研究,並開始使用SimpleCursorAdapter,它使用通常的參數(String [] from,int []等自動將光標的內容鏈接到ListView,其中我使用了android.R.layout .simple_list_item_2和android.R.id.text1和text2)。
問題是,加載的時間並沒有太多變化。
我在不同的網站和教程中遇到過一些建議的解決方案,其中大多數以各種方式使用AsyncTask類。我試着自己手動實現這個,但很難跟蹤多個線程,而且我失敗了。
教程都跟如何與內容提供商做到這一點,但我沒有發現任何明顯的布特我的具體情況:非常大的SQLite數據庫 - >讀的ListView。
現在我的腦海裏充滿了LoaderManager,LoaderAdapter等概念,所有這些都混淆在我的頭腦中。
任何人都可以請我提供一個完整的,漂亮的,乾淨的解決方案來做這個「簡單」的任務嗎?
再次:我想讀取一個BIG SQLiteDatabase並將其顯示在一個ListView中。我希望應用程序不要阻止。
我需要有一個成員函數,它作爲參數的查詢和ListActivity的環境和自身需要在顯示視圖的查詢結果的護理類。
請不要給我抽象的答案。我的時間不夠用了,現在我很困惑,我需要一個乾淨的完整解決方案。
你是我唯一的希望。
這似乎是一個聰明的解決方法,非常感謝,我一定會試試看! –