2011-02-10 3 views
0

위젯에서 내 onClick 인 텐트를 처리하는 서비스를 만들었습니다. 그러나 화면에 추가되면 강제로 닫히고 이유를 파악할 수 없습니다.서비스중인 인 텐트를 가진 메소드가 FC로 위젯을 발생시킵니다.

public void onClick() { 
    RemoteViews top=new RemoteViews(context.getPackageName(), layoutID); 
    RemoteViews bottom=new RemoteViews(context.getPackageName(), layoutID); 
    Intent clickintenttop=new Intent("android.tristan.widget.digiclock.CLICK1"); 
    Intent clickintentbottom=new Intent("android.tristan.widget.digiclock.CLICK2"); 
    PendingIntent pendingIntentClickTop=PendingIntent.getBroadcast(context, 0, clickintenttop, 0); 
    PendingIntent pendingIntentClickBottom=PendingIntent.getBroadcast(context, 0, clickintentbottom, 0); 
    bottom.setOnClickPendingIntent(R.id.BottomRow, pendingIntentClickBottom); 
    top.setOnClickPendingIntent(R.id.TopRow, pendingIntentClickTop); 
    int Top = appWidgetIds.length; 
    int Bottom = appWidgetIds.length; 
    for (int i=0; i<Top; i++) 
    { 
    appWidgetManager.updateAppWidget(appWidgetIds[i], top); 
    } 
    for (int j=0; j<Bottom; j++) 
    { 
    appWidgetManager.updateAppWidget(appWidgetIds[j], bottom); 
    } 
} 

방법은에서 onCreate에서 호출 점점() :

이 FC에 원인이되는 방법이다. 나를 올바른 방향으로 밀어 넣을 수있는 사람은 누구입니까?

EDIT : 로그 캣에서 촬영 :

W/dalvikvm (22312) threadid = 1 : FATAL EXCEPTION : 메인 캐치되지 않는 예외 (그룹 = 0x400259f8)

E/AndroidRuntime (22312)으로 빠져 나가는 나사

E/AndroidRuntime (22312) : java.lang.RuntimeException가 : 안드로이드에서 : java.lang.NullPointerException이

E/AndroidRuntime (22312) : 서비스 android.tristan.widget.digiclock.IntentService를 만들 수 없습니다. app.ActivityThread.handleCreateServi CE (ActivityThread.java:3140)

E/AndroidRuntime (22312) :에서 android.app.ActivityThread.access $ 3300 (ActivityThread.java:135)

E/AndroidRuntime (22312) : android.app에서 .ActivityThread $ H.handleMessage (ActivityThread.java:2202)

E/AndroidRuntime (22312) : android.os.Handler.dispatchMessage에서 (Handler.java:99)

E/AndroidRuntime (22312) : 에서 android.os.Looper.loop (Looper.java:144)

E/AndroidRuntime (22312) : android.app.ActivityThread.main (ActivityThread.java:4937)에서

E/AndroidRuntime (22312) : java.lang.reflect.Method.invokeNative (기본 방법)

E/AndroidRuntime에서 (22312) : java.lang.reflect.Method.invoke (Method.java:521)

E/AndroidRuntime (22312)에서 : com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run에서 (ZygoteInit.java:868)

E/AndroidRuntime (22312)에 com.android.internal.os.ZygoteInit.main (ZygoteInit.java:626)

E/AndroidRuntime (22312)에 dalvik.system.NativeStart.main (원시 메소드)

E/AndroidRuntime (22312)에 의해 발생 : java.lang.NullPointerException이

E/AndroidRuntime (22312) :

E/AndroidRuntime (22312) android.tristan.widget.digiclock.IntentService.onClick (IntentService.java:58)에서 : android.tristan.widget.digiclock.IntentService.onCreate (IntentService.java:40)에서

E/AndroidRuntime (22312) : android.app.ActivityThread.handleCreateService (ActivityThread.java:3125)

+0

fc의 전체 스택 추적을 게시하십시오. logcat 사용 : Eclipse에서 DDMS Perspective를 열거 나 명령 행에서'adb logcat'을 실행하십시오. –

+0

@Mayra Logcat이 추가되었습니다. – tristan202

+0

@ tristan202 널 포인터 뒤에 더 이상 stacktrace가 있습니까? null 포인터가 가리키는 코드 줄은 무엇입니까? –

답변

0

문제는 context이 null입니다. 그것을 사용하기 전에 그것을 무언가에 할당해야합니다.또는 서비스중인 경우 서비스가 컨텍스트이므로 this 만 사용하십시오.

그러나 이런 식으로 시도하기 전에 기본 프로그래밍 개념을 훨씬 더 잘 이해해야하는 것 같습니다. these Oracle ones과 같은 기본 Java 자습서를 읽거나 question에 언급 된 책이나 자료를 확인하십시오.

아직 Android를 해결할 준비가되지 않았습니다. 기본에서 시작하여 거기에서부터 작업하십시오.

관련 문제