2

I have app, when I press home button and wait some time, trying to return to app, I am getting force close and my app shows nonsense’s.

Only error I found:

java.lang.OutOfMemoryError: (Heap Size=98304KB, Allocated=90124KB)
    at android.database.CursorWindow.nativeGetString(Native Method)
    at android.database.CursorWindow.getString(CursorWindow.java:492)
    at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:51)
    at myapppackage.domain.Operator.buildFromCursor(Operator.java:39)
    at myapppackage.adapter.CarouselAdapter.getMostCenterFavoriteOperatorId(CarouselAdapter.java:223)
    at myapppackage.fragment.OperatorsFragment.onLoadFinished(OperatorsFragment.java:118)
    at myapppackage.fragment.OperatorsFragment.onLoadFinished(OperatorsFragment.java:44)
    at android.app.LoaderManagerImpl$LoaderInfo.callOnLoadFinished(LoaderManager.java:483)
    at android.app.LoaderManagerImpl$LoaderInfo.onLoadComplete(LoaderManager.java:451)
    at android.content.Loader.deliverResult(Loader.java:143)
    at myapppackage.fragment.OperatorsFragment$DataLoader.deliverResult(OperatorsFragment.java:213)
    at myapppackage.fragment.OperatorsFragment$DataLoader.deliverResult(OperatorsFragment.java:169)
    at android.content.AsyncTaskLoader.dispatchOnLoadComplete(AsyncTaskLoader.java:254)
    at android.content.AsyncTaskLoader$LoadTask.onPostExecute(AsyncTaskLoader.java:91)
    at android.os.AsyncTask.finish(AsyncTask.java:631)
    at android.os.AsyncTask.access$600(AsyncTask.java:177)
    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:158)
    at android.app.ActivityThread.main(ActivityThread.java:5751)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1083)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:850)
    at dalvik.system.NativeStart.main(Native Method)

How can I prevent this to happen?

Edit:

There is very useful speech about memory leaks finding:

http://www.youtube.com/watch?v=_CruQY55HOk&feature=share&list=PL4uOUQa48SihVk0Mh9-STLs8HnKuAgMD6

MartasSan
  • 135
  • 1
  • 7
  • 1
    show the code of the Activity. – mihail Oct 04 '13 at 13:37
  • 1
    What are you doing in your onResume Method to get that amount of memory usage? java.lang.OutOfMemoryError Do you have big pictures or Bitmaps in your View? – A.S. Oct 04 '13 at 13:37
  • In that activity i am using about 7 fragments. On resume method i check play services, edit prefs, fix few views. Does it posible that problem appears because i am using static list of Drawables for cache? and some ListViews data in static lists? – MartasSan Oct 04 '13 at 13:50

3 Answers3

2

check that your home activity is not cantaing any loop! or the objects are not getting created for infinite times

Ajay
  • 554
  • 1
  • 4
  • 16
0

also make sure that the images (if you are using any) are not above the required resolutions. As very large images or backgrounds can also cause an OOM exception.