2012-09-03 21 views
-3

我讓使用自定義列表適配器,它具有文本和圖像側名單列表視圖,它工作得很好,但是當我反覆滾動列表視圖起來,然後應用程序崩潰,並在日誌貓它顯示堆大小的問題..所以現在我該怎麼做才能得到這個問題,這個問題是不是發生在低的API版本,當我在HTC一個V(4.0 API)測試應用程序,那麼只有得到它墜毀,機上滾動,它的工作原理滾動,3或4次,但做更多的滾動它掛,並得到力密切與堆大小的問題......申請獲得強制關閉時嘗試repetedly向上和向下滾動列表視圖:安卓

請幫助任何幫助將在這裏得到高度讚賞..

堆棧跟蹤:

I/dalvikvm(20978): at dalvik.system.NativeStart.main(Native Method) 
09-03 07:58:33.796: E/dalvikvm(20978): Out of memory: Heap Size=131107KB, Allocated=130843KB, Limit=49152KB 
09-03 07:58:33.796: E/dalvikvm(20978): Extra info: Footprint=131043KB, Allowed Footprint=131107KB, Trimmed=1096KB 
09-03 07:58:33.796: D/skia(20978): --- decoder->decode returned false 
09-03 07:58:33.796: D/AndroidRuntime(20978): Shutting down VM 
09-03 07:58:33.796: W/dalvikvm(20978): threadid=1: thread exiting with uncaught exception (group=0x40ab8228) 
09-03 07:58:33.826: E/AndroidRuntime(20978): FATAL EXCEPTION: main 
09-03 07:58:33.826: E/AndroidRuntime(20978): java.lang.OutOfMemoryError: (Heap Size=131107KB, Allocated=130843KB) 
09-03 07:58:33.826: E/AndroidRuntime(20978): at android.graphics.BitmapFactory.nativeDecodeFile(Native Method) 
09-03 07:58:33.826: E/AndroidRuntime(20978): at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:373) 
09-03 07:58:33.826: E/AndroidRuntime(20978): at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:443) 
09-03 07:58:33.826: E/AndroidRuntime(20978): at com.raila.controller.ImageDownloader.download(ImageDownloader.java:90) 
09-03 07:58:33.826: E/AndroidRuntime(20978): at com.raila.view.NewsActivity$ItemsAdapter.getView(NewsActivity.java:166) 
09-03 07:58:33.826: E/AndroidRuntime(20978): at android.widget.AbsListView.obtainView(AbsListView.java:2054) 
09-03 07:58:33.826: E/AndroidRuntime(20978): at android.widget.ListView.makeAndAddView(ListView.java:2004) 
09-03 07:58:33.826: E/AndroidRuntime(20978): at android.widget.ListView.fillUp(ListView.java:889) 
09-03 07:58:33.826: E/AndroidRuntime(20978): at android.widget.ListView.fillGap(ListView.java:829) 
09-03 07:58:33.826: E/AndroidRuntime(20978): at android.widget.AbsListView.trackMotionScroll(AbsListView.java:4636) 
09-03 07:58:33.826: E/AndroidRuntime(20978): at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:3899) 
09-03 07:58:33.826: E/AndroidRuntime(20978): at android.os.Handler.handleCallback(Handler.java:607) 
09-03 07:58:33.826: E/AndroidRuntime(20978): at android.os.Handler.dispatchMessage(Handler.java:92) 
09-03 07:58:33.826: E/AndroidRuntime(20978): at android.os.Looper.loop(Looper.java:154) 
09-03 07:58:33.826: E/AndroidRuntime(20978): at android.app.ActivityThread.main(ActivityThread.java:4974) 
09-03 07:58:33.826: E/AndroidRuntime(20978): at java.lang.reflect.Method.invokeNative(Native Method) 
09-03 07:58:33.826: E/AndroidRuntime(20978): at java.lang.reflect.Method.invoke(Method.java:511) 
09-03 07:58:33.826: E/AndroidRuntime(20978): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
-03 07:58:33.826: E/AndroidRuntime(20978): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
09-03 07:58:33.826: E/AndroidRuntime(20978): at dalvik.system.NativeStart.main(Native Method) 
09-03 07:58:33.977: I/dalvikvm-heap(20978): Clamp target GC heap from 134.749MB to 128.000MB 
09-03 07:58:33.987: D/dalvikvm(20978): GC_CONCURRENT freed 388K, 1% free 130500K/131043K, paused 2ms+33ms 
09-03 07:58:36.379: D/Process(20978): killProcess, pid=20978 

在此先感謝。

+2

也許您可以爲我們提供您的堆棧跟蹤 – Aerilys

+0

請參閱問題部分now..i已添加 – SRam

+0

09-03 15:10:3​​1.946:D/Process(1607):com.android.server.am.ActivityManagerService.trimApplications (ActivityManagerService.java:15565) 09-03 15:10:3​​1.946:d /過程(1607):com.android.server.am.ActivityManagerService.finishReceiver(ActivityManagerService.java:13406) 09-03 15:10: 31.946:d /過程(1607年):android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:336) – SRam

回答

0

錯誤使用位圖時是。當你滾動時,你會一直加載新的位圖,因此在某些時候內存不足。 當位圖不再顯示時,您必須在位圖上調用「recycle()」。在Android開發人員博客上有一篇文章展示瞭如何做到這一點。 退房http://developer.android.com/training/improving-layouts/smooth-scrolling.htmlhttp://developer.android.com/training/displaying-bitmaps/cache-bitmap.html

+0

VV感謝您對菲利普回覆...我用延遲加載下載圖像,因此現在我應該在哪裏使用它們顯示查看Holder類和如何執行位圖回收 – SRam

1

你應該看視頻「the world of listview」爲更好地瞭解列表視圖(以及任何其他適配器視圖)是如何工作的。

另一個好東西要看看是如何handle bitmaps in an efficient way

此外,你應該在每次達到getView功能時取消viewholder任務,使舊的任務不會改變「新」視圖來顯示的內容。

相關問題