
为此,我只是启动一个检索图像的服务.我从appwidgetprovider的onUpdate方法启动它.
像那样 :
public voID onUpdate(Context context,AppWidgetManager appWidgetManager,int[] appWidgetIDs) { Intent intent = new Intent(context,UpdateService.class); context.startService(intent);} 在wifi中一切都运行良好.
但在3G网络速度慢的情况下,下载需要花费太多时间.结果我的服务被androID系统杀死了.
这里的痕迹:
03-04 15:19:02.698: INFO/ActivityManager(166): Start proc com.testpic for broadcast com.testpic/com.testpic.TestPicActivity: pID=1994 uID=10087 gIDs={1015,3003}03-04 15:19:22.889: WARN/ActivityManager(166): Timeout executing service:ServiceRecord{41851230 com.testpic/com.testpic.service.UpdateService}03-04 15:19:22.944: INFO/dalvikvm(166): Jit: resizing Jittable from 8192 to 1638403-04 15:19:22.967: INFO/Process(166): Sending signal. PID: 1994 SIG: 303-04 15:19:22.967: INFO/dalvikvm(1994): threadID=3: reacting to signal 303-04 15:19:22.994: INFO/dalvikvm(1994): Wrote stack traces to '/data/anr/traces.txt'03-04 15:19:22.994: INFO/Process(166): Sending signal. PID: 166 SIG: 303-04 15:19:22.994: INFO/dalvikvm(166): threadID=3: reacting to signal 303-04 15:19:23.053: INFO/dalvikvm(166): Wrote stack traces to '/data/anr/traces.txt'03-04 15:19:23.053: INFO/Process(166): Sending signal. PID: 232 SIG: 303-04 15:19:23.053: INFO/dalvikvm(232): threadID=3: reacting to signal 303-04 15:19:23.061: INFO/dalvikvm(232): Wrote stack traces to '/data/anr/traces.txt'03-04 15:19:23.061: INFO/Process(166): Sending signal. PID: 342 SIG: 303-04 15:19:23.061: INFO/dalvikvm(342): threadID=3: reacting to signal 303-04 15:19:23.084: INFO/dalvikvm(342): Wrote stack traces to '/data/anr/traces.txt'03-04 15:19:23.084: INFO/Process(166): Sending signal. PID: 359 SIG: 303-04 15:19:23.084: INFO/dalvikvm(359): threadID=3: reacting to signal 303-04 15:19:23.096: INFO/dalvikvm(359): Wrote stack traces to '/data/anr/traces.txt'03-04 15:19:23.272: DEBUG/dalvikvm(166): GC_CONCURRENT freed 914K,16% free 13371K/15879K,paused 3ms+5ms03-04 15:19:23.467: DEBUG/dalvikvm(166): GC_EXPliCIT freed 459K,16% free 13475K/15879K,paused 3ms+5ms03-04 15:19:24.065: ERROR/ActivityManager(166): ANR in com.testpicReason: Executing service com.testpic/com.testpic.service.UpdateServiceLoad: 1.58 / 1.52 / 0.84cpu usage from 12327ms to 0ms ago with 99% awake:16% 166/system_server: 7.3% user + 9.4% kernel / faults: 8 minor9.1% 1994/com.testpic: 7.1% user + 2% kernel / faults: 249 minor0.7% 374/com.androID.launcher: 0.6% user + 0% kernel / faults: 15 minor0.6% 342/com.androID.phone: 0.4% user + 0.2% kernel / faults: 15 minor0.4% 5/kworker/u:0: 0% user + 0.4% kernel0.4% 1343/kworker/0:1: 0% user + 0.4% kernel0.4% 66/yaffs-bg-1: 0% user + 0.4% kernel0.4% 77/rild: 0% user + 0.3% kernel0.2% 897/de.devmil.minimaltext: 0.2% user + 0% kernel / faults: 63 minor0.1% 293/com.Google.process.gapps: 0% user + 0% kernel / faults: 4 minor0% 159/logcat: 0% user + 0% kernel0% 160/flush-179:0: 0% user + 0% kernel0% 232/com.androID.systemUI: 0% user + 0% kernel / faults: 1 minor0% 835/com.Google.androID.apps.maps:NetworkLocationService: 0% user + 0% kernel / faults: 15 minor25% TOTAL: 14% user + 11% kernel + 0.2% softirqcpu usage from 577ms to 1090ms later with 99% awake:22% 166/system_server: 8.7% user + 14% kernel10% 182/ActivityManager: 3.5% user + 7% kernel7% 179/system_server: 0% user + 7% kernel3.5% 199/er$SensorThread: 0% user + 3.5% kernel1.7% 181/er.ServerThread: 1.7% user + 0% kernel4.5% 1994/com.testpic: 4.5% user + 0% kernel / faults: 4 minor4.5% 1994/com.testpic: 4.5% user + 0% kernel19% TOTAL: 7.6% user + 11% kernel03-04 15:19:24.065: WARN/ActivityManager(166): Killing ProcessRecord{416316c0 1994:com.testpic/10087}: background ANR03-04 15:19:24.073: INFO/ActivityManager(166): Process com.testpic (pID 1994) has dIEd.03-04 15:19:24.073: WARN/ActivityManager(166): Scheduling restart of crashed service com.testpic/com.testpic.service.UpdateService in 42380ms 所以我的问题是:
– 我该怎么做才能避免这种ANR?
– 在这种情况下使用服务是否正确?
– 如果不是我应该用什么来进行这种治疗?
预先感谢您的帮助 :)
解决方法 常规服务仍然在UI线程上运行,除非您告诉它生成另一个.考虑使用IntentService而不是为您处理. 总结 以上是内存溢出为你收集整理的android – 从AppWidgetProvider启动服务时的ANR全部内容,希望文章能够帮你解决android – 从AppWidgetProvider启动服务时的ANR所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)