2016-12-19 2 views
0

を漏らします画面に何回も表示されると、メモリ不足になります。sqliteの姿勢変化メモリは、私はそれは、次の一つだ OnCreateの上で、一度に実行sqliteの方法を持っていると

IはautoCompleteSearchこの

citiesList = myDbHelper.citiesListDB(); 
autoCompleteSearch.setThreshold(1); 
searchAdapter = new SearchableAdapter(this, citiesList); 
autoCompleteSearch.setAdapter(searchAdapter); 

と同様のonCreateにそれを呼び出すは、DBメソッドから返されるのArrayListから移入されたドロップダウン を有するAutoCompleteTextView図です。


私はこのエラー

E/dalvikvm-heap: Out of memory on a 28-byte allocation. 
I/dalvikvm: "main" prio=5 tid=1 RUNNABLE 
I/dalvikvm: | group="main" sCount=0 dsCount=0 obj=0xb5e5a4b0 self=0xb8b1a4e0 
I/dalvikvm: | sysTid=11362 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=-1208536000 
I/dalvikvm: | schedstat=(0 0 0) utm=40 stm=45 core=0 
I/dalvikvm:  at java.util.HashMap.makeTable(HashMap.java:~555) 
I/dalvikvm:  at java.util.HashMap.doubleCapacity(HashMap.java:575) 
I/dalvikvm:  at java.util.HashMap.put(HashMap.java:405) 
I/dalvikvm:  at DatabaseHelper.citiesListDB(DatabaseHelper.java:262) 

及びこれにもかかわらず をDB接続を閉じるには、私のベストを尽くしたが、アプリのクラッシュ:私はそれは、関連する何かかもしれないと思う

FATAL EXCEPTION: main 
java.lang.OutOfMemoryError: [memory exhausted] 
at dalvik.system.NativeStart.main(Native Method) 

メモリゴミなどに


アップデート:DatabaseHelper.java:262

map.put("cid",  c.getString(c.getColumnIndex("city_id")) ); 
+0

コンパイル可能なJavaコードを表示すると役立ちます。特に、あなたが求めているコードを含むクラスとメソッドが必要です。これは、エラーメッセージの名前とコード内の名前を一致させるのに役立ちます。 –

+0

また、どの行に262をマークしてください。 –

+0

@ Code-Apprentice、私はそれを指定しました – Ryan

答えて

0

あなたは正しく、データベースを閉じているので、これが最も可能性の高いエラーとは何の関係もありません。あなたはあまりにも多くのデータをメモリにロードしていると思います。 ArrayAdapterの代わりにCursorAdapterを使用する必要があります。

+0

それは正しいですが、問題は、アプリが2回以上回転した後にクラッシュすることです。それはあなたに何かを教えてくれますか? 配列に約9k行をロードしています – Ryan

関連する問題