2010-06-22 3 views
1

내 응용 프로그램에서 홈 스크린 위젯을 추가했습니다. 처음에는 위젯을 추가 할 때를 제외하고는 모두 잘 작동합니다. 구성 활동을 여는 대신 ANR이 나타납니다.AppWidget 구성시 브로드 캐스트 시간 초과

첫 번째 충돌 후 정상적으로 작동하므로 충돌은 아마도 정의되지 않은 값 때문에 발생했을 것입니다. 아니면 appWidget과 관련된 사물의 흐름을 이해하지 못했을 수도 있습니다.

내 수신자는 환경 설정에 사용 된 활동을 가리키는 메타 데이터로 선언되어 있습니다. 이 활동은 회 전자와 버튼으로 구성됩니다. 버튼을 누르면 'empty'RemoteView가 호스트로 전달되고 서버에서 데이터를로드하려고하는 브로드 캐스트가 내 서비스로 전송됩니다. 사용자 상호 작용 전에 RemoteView를 호스트에 전달해야합니까?

로그 항목이 나에게 적합하지 않습니다. 내가 android:configure에 언급 된 활동 대신 ANR을 이유는 무엇입니까

I/ActivityManager( 51): Displayed activity com.android.settings/.AppWidgetPickActivity: 1086 ms (total 21908 ms) 
E/my-appWidgetProvider( 228): BroadcastReciever enabled 
D/AndroidRuntime( 228): Shutting down VM 
W/dalvikvm( 228): threadid=3: thread exiting with uncaught exception (group=0x4001aa28) 
I/ActivityManager( 51): Starting activity: Intent { act=android.appwidget.action.APPWIDGET_CONFIGURE cmp=se.oskarnordgren.debaser/.widget.WidgetPrefs (has extras) } 
W/InputManagerService( 51): Window already focused, ignoring focus gain of: [email protected] 
W/WindowManager( 51): Attempted to add window with non-application token WindowToken{43890b08 token=null}. Aborting. 
D/dalvikvm( 228): DestroyJavaVM waiting for non-daemon threads to exit 
W/ActivityManager( 51): Timeout of broadcast BroadcastRecord{438c3308 android.appwidget.action.APPWIDGET_UPDATE} - [email protected] 
W/ActivityManager( 51): Receiver during timeout: ResolveInfo{438c3288 se.oskarnordgren.debaser.widget.DebaserWidget p=0 o=0 m=0x0} 
I/ActivityManager( 51): ANR in process: se.oskarnordgren.debaser 
I/ActivityManager( 51): Annotation: Broadcast of Intent { act=android.appwidget.action.APPWIDGET_UPDATE cmp=se.oskarnordgren.debaser/.widget.DebaserWidget (has extras) } 
I/ActivityManager( 51): CPU usage: 
I/ActivityManager( 51): Load: 0.87/0.36/0.13 
I/ActivityManager( 51): CPU usage from 10094ms to 20ms ago: 
I/ActivityManager( 51): com.android.settings: 6% = 3% user + 2% kernel/faults: 4014 minor 5 major 
I/ActivityManager( 51): system_server: 3% = 2% user + 1% kernel/faults: 12 minor 
I/ActivityManager( 51): logcat: 2% = 0% user + 1% kernel/faults: 108 minor 
I/ActivityManager( 51): android.process.acore: 0% = 0% user + 0% kernel/faults: 2 minor 
I/ActivityManager( 51): se.oskarnordgren.debaser: 0% = 0% user + 0% kernel/faults: 11 minor 
I/ActivityManager( 51): com.android.phone: 0% = 0% user + 0% kernel/faults: 2 minor 
I/ActivityManager( 51): adbd: 0% = 0% user + 0% kernel 
I/ActivityManager( 51): sh: 0% = 0% user + 0% kernel/faults: 98 minor 
I/ActivityManager( 51): TOTAL: 5% = 3% user + 1% kernel 
I/ActivityManager( 51): Removing old ANR trace file from /data/anr/traces.txt 
I/Process ( 51): Sending signal. PID: 228 SIG: 3 
I/dalvikvm( 228): threadid=7: reacting to signal 3 
I/dalvikvm( 228): Wrote stack trace to '/data/anr/traces.txt' 

: 나는 누군가가 나보다 로그 출력의 더 나은 이해를 가지고 바라고 있어요?

중요한 부분을 알고있는 경우 더 많은 코드를 붙여 넣을 수 있습니다.

+0

같은 종류의 문제가 생겼습니다. 방송 시간 초과 BroadcastRecord, 시간 초과 중 수신기 : ResolveInfo ... 다음에 "INFO/ActivityManager (76) : com.cousinHub.appname 처리 : 원격 (819 번째)이 사망했다 "고 밝혔다. 내가 Stackoverflow에 대한 질문을 게시 할 ... 어쩌면 당신은 또한 내가 그것에 얻을 것이다 답변을 따를 수 있습니다. 이게 결국 내 질문에 대한 링크 – Hubert

+0

도움이되기를 바랍니다 : http://stackoverflow.com/questions/3117350/alarmmanager-and-broadcastreceiver-instead-of-service-is-that-bad-timeout-pr – Hubert

답변

0

이 질문은 여전히이 질문에 직면 한 다른 사람들을 도울 수있는이 답변을 원합니다.

브로드 캐스트 리시버에서 getApplicationContext를 호출 할 수 없습니다. 그렇게하면 ANR이 발생할 수 있습니다.

관련 문제