ActivityManager进程已死问题

6
我的应用程序包含5个屏幕。在第一个屏幕中,我从服务器加载一些数据,并在第二个屏幕的listview中显示这些数据。在listview中,我需要为每一行显示一张图片。这些图像是动态下载并被缓存的。下载发生在后台,我已经为listview给出了notifyDataSetChanged()。
当下载正在进行时,我可以进入其他3个屏幕。在这3个屏幕中,我有一个按钮执行相同的功能,即显示一个对话框,其中包含与第二屏幕相同的列表。
问题是,当我从此对话框中选择一个值(比如2或3次),当前活动就会消失,自动切换到我的第二页面。
我无法确定其原因。请查看我得到的日志。有人能告诉我为什么会发生这个问题吗?
> 08-25 10:44:31.505: WARN/AudioFlinger(2573): write blocked for 73 msecs, 92 delayed writes, thread 0x5e518
08-25 10:44:31.515: DEBUG/szipinf(17236): Initializing inflate state
08-25 10:44:31.635: INFO/DEBUG(16421): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
08-25 10:44:31.635: INFO/DEBUG(16421): Build fingerprint: 'samsung/GT-I9100/GT-I9100:2.3.3/GINGERBREAD/XWKE8:user/release-keys'
08-25 10:44:31.635: INFO/DEBUG(16421): pid: 17236, tid: 17236  >>> com.test.android <<<
08-25 10:44:31.635: INFO/DEBUG(16421): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad
08-25 10:44:31.635: INFO/DEBUG(16421):  r0 00000027  r1 deadbaad  r2 a0000000  r3 00000000
08-25 10:44:31.635: INFO/DEBUG(16421):  r4 00000001  r5 00000000  r6 bea102c0  r7 0000a000
08-25 10:44:31.635: INFO/DEBUG(16421):  r8 00646278  r9 00030000  10 00000000  fp bea1022c
08-25 10:44:31.635: INFO/DEBUG(16421):  ip afd46688  sp bea100e0  lr afd19471  pc afd15f40  cpsr 68000030
08-25 10:44:31.635: INFO/DEBUG(16421):  d0  fffff7d600000d72  d1  40e3100000000800
08-25 10:44:31.635: INFO/DEBUG(16421):  d2  40b9f00000000000  d3  c14fec0040535000
08-25 10:44:31.635: INFO/DEBUG(16421):  d4  40e31000c182a600  d5  0000000000000000
08-25 10:44:31.635: INFO/DEBUG(16421):  d6  4557200000071880  d7  45000000c502a000
08-25 10:44:31.635: INFO/DEBUG(16421):  d8  0000000000000000  d9  4680000046800000
08-25 10:44:31.635: INFO/DEBUG(16421):  d10 0000000042d2aaaa  d11 0000000000000000
08-25 10:44:31.635: INFO/DEBUG(16421):  d12 0000000000000000  d13 0000000000000000
08-25 10:44:31.635: INFO/DEBUG(16421):  d14 0000000000000000  d15 0000000000000000
08-25 10:44:31.635: INFO/DEBUG(16421):  d16 00000000000000a0  d17 40e631e000000000
08-25 10:44:31.635: INFO/DEBUG(16421):  d18 3faeb851e0000000  d19 3fc3333340000000
08-25 10:44:31.635: INFO/DEBUG(16421):  d20 3fe3333340000000  d21 3fd3333340000000
08-25 10:44:31.635: INFO/DEBUG(16421):  d22 3fd51eb860000000  d23 40e01d100abe0000
08-25 10:44:31.635: INFO/DEBUG(16421):  d24 40dd4c2013880000  d25 40ed4c1013880000
08-25 10:44:31.635: INFO/DEBUG(16421):  d26 40cd4c4013880000  d27 0000000000000000
08-25 10:44:31.635: INFO/DEBUG(16421):  d28 0002d4740002d474  d29 407c300000000000
08-25 10:44:31.635: INFO/DEBUG(16421):  d30 0000000000000000  d31 3ff0000000000000
08-25 10:44:31.635: INFO/DEBUG(16421):  scr 80000012
08-25 10:44:31.695: INFO/AudioFlinger(2573): stop output streamType (0, 1) for 1
08-25 10:44:31.695: DEBUG/AudioHardwareYamaha(2573): AudioStreamOut::setParameters(keyValuePairs="stop_output_streamtype=1")
08-25 10:44:31.735: INFO/DEBUG(16421):          #00  pc 00015f40  /system/lib/libc.so
08-25 10:44:31.735: INFO/DEBUG(16421):          #01  pc 000138b0  /system/lib/libc.so
08-25 10:44:31.735: INFO/DEBUG(16421):          #02  pc 00014776  /system/lib/libc.so
08-25 10:44:31.735: INFO/DEBUG(16421):          #03  pc 0005079c  /system/lib/libskia.so
08-25 10:44:31.735: INFO/DEBUG(16421):          #04  pc 0005089c  /system/lib/libskia.so
08-25 10:44:31.740: INFO/DEBUG(16421):          #05  pc 0007d164  /system/lib/libskia.so
08-25 10:44:31.740: INFO/DEBUG(16421):          #06  pc 0007d220  /system/lib/libskia.so
08-25 10:44:31.740: INFO/DEBUG(16421):          #07  pc 0007d360  /system/lib/libskia.so
08-25 10:44:31.740: INFO/DEBUG(16421):          #08  pc 0007d808  /system/lib/libskia.so
08-25 10:44:31.740: INFO/DEBUG(16421):          #09  pc 00080344  /system/lib/libskia.so
08-25 10:44:31.740: INFO/DEBUG(16421): code around pc:
08-25 10:44:31.740: INFO/DEBUG(16421): afd15f20 2c006824 e028d1fb b13368db c064f8df 
08-25 10:44:31.740: INFO/DEBUG(16421): afd15f30 44fc2401 4000f8cc 49124798 25002027 
08-25 10:44:31.740: INFO/DEBUG(16421): afd15f40 f7f57008 2106eb46 ecbaf7f6 460aa901 
08-25 10:44:31.740: INFO/DEBUG(16421): afd15f50 f04f2006 95015380 95029303 e820f7f6 
08-25 10:44:31.740: INFO/DEBUG(16421): afd15f60 462aa905 f7f62002 f7f5e82c 2106eb32 
08-25 10:44:31.740: INFO/DEBUG(16421): code around lr:
08-25 10:44:31.745: INFO/DEBUG(16421): afd19450 4a0e4b0d e92d447b 589c41f0 26004680 
08-25 10:44:31.745: INFO/DEBUG(16421): afd19460 686768a5 f9b5e006 b113300c 47c04628 
08-25 10:44:31.745: INFO/DEBUG(16421): afd19470 35544306 37fff117 6824d5f5 d1ef2c00 
08-25 10:44:31.745: INFO/DEBUG(16421): afd19480 e8bd4630 bf0081f0 000280cc ffffff88 
08-25 10:44:31.745: INFO/DEBUG(16421): afd19490 b086b570 f602fb01 9004460c a804a901 
08-25 10:44:31.745: INFO/DEBUG(16421): stack:
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100a0  afd42684  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100a4  000afba8  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100a8  00000015  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100ac  afd18539  /system/lib/libc.so
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100b0  afd4272c  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100b4  afd426d8  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100b8  00000000  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100bc  afd19471  /system/lib/libc.so
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100c0  00000001  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100c4  bea100f4  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100c8  bea102c0  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100cc  0000a000  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100d0  00646278  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100d4  afd18793  /system/lib/libc.so
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100d8  df002777  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100dc  e3a070ad  
08-25 10:44:31.745: INFO/DEBUG(16421): #00 bea100e0  00000000  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100e4  0017d908  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100e8  0017d8c0  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100ec  002b1d30  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100f0  bea102c0  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100f4  fffffbdf  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100f8  00646278  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea100fc  afd46470  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea10100  002b1d30  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea10104  afd138b5  /system/lib/libc.so
08-25 10:44:31.745: INFO/DEBUG(16421): #01 bea10108  0017d8c0  
08-25 10:44:31.745: INFO/DEBUG(16421):     bea1010c  002b1d30  
08-25 10:44:31.750: INFO/DEBUG(16421):     bea10110  ab217314  
08-25 10:44:31.750: INFO/DEBUG(16421):     bea10114  002b30f8  
08-25 10:44:31.750: INFO/DEBUG(16421):     bea10118  00646278  
08-25 10:44:31.750: INFO/DEBUG(16421):     bea1011c  afd14779  /system/lib/libc.so
08-25 10:44:32.140: INFO/BootReceiver(2689): Copying /data/tombstones/tombstone_03 to DropBox (SYSTEM_TOMBSTONE)
08-25 10:44:32.145: INFO/DEBUG(16421): dumpstate /data/log/dumpstate_app_native.txt
08-25 10:44:32.150: INFO/dumpstate(17848): begin
08-25 10:44:32.165: INFO/dalvikvm(2689): threadid=4: reacting to signal 3
08-25 10:44:32.170: INFO/dalvikvm(2689): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.170: INFO/dalvikvm(2810): threadid=4: reacting to signal 3
08-25 10:44:32.170: INFO/dalvikvm(2810): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.170: INFO/dalvikvm(2832): threadid=4: reacting to signal 3
08-25 10:44:32.175: INFO/dalvikvm(2832): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.175: INFO/dalvikvm(2836): threadid=4: reacting to signal 3
08-25 10:44:32.175: INFO/dalvikvm(2836): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.175: INFO/dalvikvm(2837): threadid=4: reacting to signal 3
08-25 10:44:32.175: INFO/dalvikvm(2837): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.180: INFO/dalvikvm(2838): threadid=4: reacting to signal 3
08-25 10:44:32.180: INFO/dalvikvm(2838): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.180: INFO/dalvikvm(2840): threadid=4: reacting to signal 3
08-25 10:44:32.180: INFO/dalvikvm(2840): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.180: INFO/dalvikvm(2846): threadid=4: reacting to signal 3
08-25 10:44:32.200: ERROR/yamaha::media::Parameters(2573): SalesCode = INU
08-25 10:44:32.240: INFO/dalvikvm(2846): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.240: INFO/dalvikvm(2916): threadid=4: reacting to signal 3
08-25 10:44:32.245: INFO/dalvikvm(2916): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.245: INFO/dalvikvm(2962): threadid=4: reacting to signal 3
08-25 10:44:32.250: INFO/dalvikvm(2962): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.250: INFO/dalvikvm(3104): threadid=4: reacting to signal 3
08-25 10:44:32.250: INFO/dalvikvm(3104): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.250: INFO/dalvikvm(3238): threadid=4: reacting to signal 3
08-25 10:44:32.250: INFO/dalvikvm(3238): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.250: INFO/dalvikvm(3405): threadid=4: reacting to signal 3
08-25 10:44:32.255: INFO/dalvikvm(3405): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.255: INFO/dalvikvm(3461): threadid=4: reacting to signal 3
08-25 10:44:32.255: INFO/dalvikvm(3461): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.255: INFO/dalvikvm(3503): threadid=4: reacting to signal 3
08-25 10:44:32.255: INFO/dalvikvm(3503): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.255: INFO/dalvikvm(3574): threadid=4: reacting to signal 3
08-25 10:44:32.255: INFO/dalvikvm(3574): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.255: INFO/dalvikvm(3594): threadid=4: reacting to signal 3
08-25 10:44:32.260: INFO/dalvikvm(3594): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.260: INFO/dalvikvm(3602): threadid=4: reacting to signal 3
08-25 10:44:32.260: INFO/dalvikvm(3602): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.260: INFO/dalvikvm(3633): threadid=4: reacting to signal 3
08-25 10:44:32.265: INFO/dalvikvm(3633): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.265: INFO/dalvikvm(3644): threadid=4: reacting to signal 3
08-25 10:44:32.265: INFO/dalvikvm(3644): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.265: INFO/dalvikvm(5258): threadid=4: reacting to signal 3
08-25 10:44:32.270: INFO/dalvikvm(5258): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.270: INFO/dalvikvm(6665): threadid=4: reacting to signal 3
08-25 10:44:32.270: INFO/dalvikvm(6665): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.270: INFO/dalvikvm(12988): threadid=4: reacting to signal 3
08-25 10:44:32.275: INFO/dalvikvm(12988): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.275: INFO/dalvikvm(13199): threadid=4: reacting to signal 3
08-25 10:44:32.275: INFO/dalvikvm(13199): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.275: INFO/dalvikvm(13271): threadid=4: reacting to signal 3
08-25 10:44:32.275: INFO/dalvikvm(13271): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.275: INFO/dalvikvm(13304): threadid=4: reacting to signal 3
08-25 10:44:32.280: INFO/dalvikvm(13304): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.280: INFO/dalvikvm(13332): threadid=4: reacting to signal 3
08-25 10:44:32.280: INFO/dalvikvm(13332): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.280: INFO/dalvikvm(13342): threadid=4: reacting to signal 3
08-25 10:44:32.280: INFO/dalvikvm(13342): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.280: INFO/dalvikvm(13352): threadid=4: reacting to signal 3
08-25 10:44:32.280: INFO/dalvikvm(13352): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.280: INFO/dalvikvm(13366): threadid=4: reacting to signal 3
08-25 10:44:32.285: INFO/dalvikvm(13366): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.285: INFO/dalvikvm(13374): threadid=4: reacting to signal 3
08-25 10:44:32.285: INFO/dalvikvm(13374): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.285: INFO/dalvikvm(13403): threadid=4: reacting to signal 3
08-25 10:44:32.285: INFO/dalvikvm(13403): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.285: INFO/dalvikvm(13608): threadid=4: reacting to signal 3
08-25 10:44:32.285: INFO/dalvikvm(13608): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.290: INFO/dalvikvm(13866): threadid=4: reacting to signal 3
08-25 10:44:32.290: INFO/dalvikvm(13866): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.290: INFO/dalvikvm(13897): threadid=4: reacting to signal 3
08-25 10:44:32.290: INFO/dalvikvm(13897): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.290: INFO/dalvikvm(14304): threadid=4: reacting to signal 3
08-25 10:44:32.290: INFO/dalvikvm(14304): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.290: INFO/dalvikvm(14471): threadid=4: reacting to signal 3
08-25 10:44:32.295: INFO/dalvikvm(14471): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.295: INFO/dalvikvm(17236): threadid=4: reacting to signal 3
08-25 10:44:32.495: INFO/dalvikvm(17511): threadid=4: reacting to signal 3
08-25 10:44:32.500: INFO/dalvikvm(17511): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.505: INFO/dalvikvm(17583): threadid=4: reacting to signal 3
08-25 10:44:32.515: INFO/dalvikvm(17583): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.515: INFO/dalvikvm(17595): threadid=4: reacting to signal 3
08-25 10:44:32.520: INFO/dalvikvm(17595): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.520: INFO/dalvikvm(17620): threadid=4: reacting to signal 3
08-25 10:44:32.535: INFO/dalvikvm(17620): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.540: INFO/dalvikvm(17653): threadid=4: reacting to signal 3
08-25 10:44:32.550: INFO/dalvikvm(17653): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.550: INFO/dalvikvm(17664): threadid=4: reacting to signal 3
08-25 10:44:32.560: INFO/dalvikvm(17664): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.560: INFO/dalvikvm(17672): threadid=4: reacting to signal 3
08-25 10:44:32.570: INFO/dalvikvm(17672): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.570: INFO/dalvikvm(17689): threadid=4: reacting to signal 3
08-25 10:44:32.580: INFO/dalvikvm(17689): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.580: INFO/dalvikvm(17696): threadid=4: reacting to signal 3
08-25 10:44:32.600: INFO/dalvikvm(17696): Wrote stack traces to '/data/anr/traces.txt'
08-25 10:44:32.795: ERROR/lights(2689): write_int: path /sys/devices/virtual/misc/melfas_touchkey/brightness, value 2
08-25 10:44:32.795: WARN/PowerManagerService(2689): Timer 0x7->0x3|0x0
08-25 10:44:32.795: INFO/PowerManagerService(2689): Ulight 7->3|0
08-25 10:44:32.795: DEBUG/PowerManagerService(2689): setLightBrightness : mButtonLight : 0
08-25 10:44:33.295: WARN/dalvikvm(17236): threadid=4: spin on suspend #1 threadid=13 (pcf=0)
08-25 10:44:33.760: INFO/ALSAModule(2573): Terminated ALSA PLAYBACK device hifi
08-25 10:44:34.180: ERROR/yamaha::media::Parameters(2573): SalesCode = INU
08-25 10:44:35.955: DEBUG/dalvikvm(3104): GC_EXPLICIT freed 18K, 55% free 2593K/5703K, external 0K/0K, paused 37ms
08-25 10:44:36.025: DEBUG/VoldCmdListener(2565): asec list
08-25 10:44:37.095: INFO/dumpstate(17848): done
08-25 10:44:37.150: INFO/DEBUG(16421): debuggerd committing suicide to free the zombie!
08-25 10:44:37.170: INFO/DEBUG(17899): debuggerd: May 18 2011 13:55:14
08-25 10:44:37.270: INFO/ActivityManager(2689): Process com.test.android (pid 17236) has died.
08-25 10:44:37.285: INFO/WindowManager(2689): WIN DEATH: Window{40943ee0 com.test.android/com.test.android.activities.SecondScreenActivity paused=false}
08-25 10:44:37.290: INFO/WindowManager(2689): WIN DEATH: Window{40936210 com.test.android/com.test.android.activities.HomeScreenActivity paused=false}
08-25 10:44:37.290: INFO/WindowManager(2689): WIN DEATH: Window{4096f840 com.test.android/com.test.android.activities.ThirdScreenActivity paused=false}
08-25 10:44:37.290: INFO/WindowManager(2689): WIN DEATH: Window{409dea98 Select Language paused=false}
08-25 10:44:37.310: INFO/ActivityManager(2689): Start proc com.test.android for activity com.test.android/.activities.SecondScreenActivity: pid=17900 uid=10114 gids={3003, 1015}

你好,马修,你是否将图像存储/下载到SD卡中? - Dipak Keshariya
图像的分辨率是什么?例如,128128、7272。 - Dipak Keshariya
请提供下载图像代码函数。 - Dipak Keshariya
请提供一些代码以便我可以将您的代码与我的代码进行比较,然后给您答案。 - Dipak Keshariya
URL myFileUrl = null;
Bitmap imageBitmap = null; try { myFileUrl = new URL(fileUrl); } catch (MalformedURLException e) { e.printStackTrace(); } try { HttpURLConnection connection = (HttpURLConnection)myFileUrl.openConnection(); connection.setDoInput(true); connection.connect(); InputStream is = connection.getInputStream(); imageBitmap = BitmapFactory.decodeStream(is); } catch (OutOfMemoryError e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); }
- Anju
2个回答

12
堆栈跟踪开头的大量奇怪文本是原生崩溃转储。崩溃发生是因为一个本地库中未处理的运行时错误。该错误发生是因为访问了未映射的地址0xdeadbaad

08-25 10:44:31.635: INFO/DEBUG(16421): signal 11 (SIGSEGV),code 1 (SEGV_MAPERR),fault addr deadbaad

此错误发生后,应用程序进程将被终止并重新启动。创建SecondScreenActivity,然后从上次保存的状态恢复它的状态。 编辑:我认为问题不在您的代码中。似乎这是Android的一个bug。以下是一个错误报告:http://code.google.com/p/android/issues/detail?id=14498
此报告包含以下结论:

APK正在使用来自多个线程的位图,在回收之后(或在回收期间)重复使用它。 Skia图形库不完全支持多线程,并且引入附加同步代价太高,因此平台不会修复此问题。

所以您需要小心使用recycle()


2
我为您添加了一些可能有用的信息。 - Michael

0

尝试这段代码。

首先在全局声明所有变量/对象。

然后使用以下函数在SD卡中下载图像。

首先在ImageView中显示此图像,在下载按钮的单击事件中调用以下函数。

Bitmap bmpImage;
bmpImage = loadBitmapFromView(imgview1);
downloadImageinphone(bmpImage);



public static Bitmap loadBitmapFromView(ImageView v) {
        Bitmap b = Bitmap.createBitmap(v.getWidth(), v.getHeight(),
                Bitmap.Config.ARGB_8888);
        Canvas c = new Canvas(b);
        // v.layout(0, 0, v.getWidth(), v.getHeight());
        v.draw(c);
        return b;
}

调用此函数后:-
Uri uri;
Bitmap b;

    private void downloadImageinphone(Bitmap b) {
        String filename = "tempImage";
        ContentValues values = new ContentValues();
        values.put(Images.Media.TITLE, filename);
        values.put(Images.Media.DATE_ADDED, System.currentTimeMillis());
        values.put(Images.Media.MIME_TYPE, "image/png");
        uri = getContentResolver().insert(Images.Media.EXTERNAL_CONTENT_URI,
                values);

        try {
            OutputStream outStream = getContentResolver().openOutputStream(uri);
            // outStream = new FileOutputStream(file);
            b.compress(Bitmap.CompressFormat.PNG, 100, outStream);
            outStream.flush();
            outStream.close();
            Log.d("done", "done");
            Toast.makeText(MainActivity.this,
                    "Photo is Successfully Downloaded",
                    Toast.LENGTH_LONG).show();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        b.recycle();
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接