Android:进程已经死亡/ AsyncTask HTTP获取

时间:2013-04-20 14:19:50

标签: android http process android-asynctask

我有一个奇怪的问题。 我正在使用AsyncTask下载一些图像。

有时我的应用程序默默地“崩溃”

I/System.out(28632): Downloaded :  135443
D/szipinf (28632): Initializing inflate state
I/ActivityManager( 1740): Process com.zibi.hypercolor.next (pid 28632) has died.
E/InputDispatcher( 1740): channel '4056a838 com.zibi.hypercolor.next/com.zibi.hypercolor.next.WallpaperSettingsList (server)' ~ Consumer closed input channel or an error occurred.  events=0x8
E/InputDispatcher( 1740): channel '4056a838 com.zibi.hypercolor.next/com.zibi.hypercolor.next.WallpaperSettingsList 
(server)' ~ Channel is unrecoverably broken and will be disposed!

I/ActivityManager( 1740): Low Memory: No more background processes.

1 个答案:

答案 0 :(得分:0)

Low Memory: No more background processes在您的情况下是一个死的赠品。设备内存不足。当它发生时,它会停止进程。它按以下顺序停止:

  1. 没有任何活动或服务的流程,即放在后台并保持运行的应用程序,以防用户再次需要它们。
  2. 使用查看电子邮件等后台服务进行处理。
  3. 使用后台下载或播放音乐播放器等前台服务进行处理。
  4. 处理前台活动,即正在使用的应用程序。
  5. 显然,您的应用程序会加载太多位图并耗尽所有内存。系统首先停止所有不需要的东西,但是当你继续加载位图时,它必须杀死所需的东西。后台下载服务首先出现,因为它是上面的第三种情况。

    您只需要确保您的内存中不会同时存在多个位图。请注意,闪存速度相当快,并且使用大量内存会降低设备本身的速度,因此保留显示位图以及内存中最近使用的一些位图不太可能有所帮助。