【问题标题】:App breaks after returning from home [closed]回家后应用程序中断[关闭]
【发布时间】:2013-10-11 12:45:20
【问题描述】:

我有应用程序,当我按下主页按钮并等待一段时间,试图返回应用程序时,我被强制关闭并且我的应用程序显示废话。

我发现的唯一错误:

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)

我怎样才能防止这种情况发生?

编辑:

关于内存泄漏发现有非常有用的演讲:

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

【问题讨论】:

  • 显示Activity的代码。
  • 你在 onResume 方法中做了什么来获得这么多的内存使用量? java.lang.OutOfMemoryError 你的视图中有大图或位图吗?
  • 在那个活动中,我使用了大约 7 个片段。在恢复方法上,我检查播放服务,编辑首选项,修复一些视图。是否会出现这个问题,因为我正在使用静态的 Drawable 列表进行缓存?以及静态列表中的一些 ListViews 数据?

标签: android out-of-memory


【解决方案1】:

检查您的家庭活动是否没有循环! 或者对象没有被无限次创建

【讨论】:

    【解决方案2】:
    【解决方案3】:

    还要确保图像(如果您使用任何图像)不高于所需的分辨率。因为非常大的图像或背景也会导致 OOM 异常。

    【讨论】:

    • 谢谢我注意到了:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    • 2019-07-02
    • 1970-01-01
    相关资源
    最近更新 更多