마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

브로드캐스트리시버와 서비스 연동 도와주세요

0 추천
package com.example.db;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class Receiver extends BroadcastReceiver  {
	  static String ACTION1 = "android.intent.action.ACTION_POWER_CONNECTED";
      static String ACTION2 = "android.intent.action.ACTION_POWER_DISCONNECTED";
	@Override
	public void onReceive(Context context, Intent intent) {
		// TODO Auto-generated method stub
		 /*
        if(intent.getAction().equals(ACTION1))
         {
               Toast.makeText(context,"Be received action aboutACTION_POWER_CONNECTED",1000).show();
         }
         else if(intent.getAction().equals(ACTION2))
         {
                Toast.makeText(context,"Be received action aboutACTION_POWER_DISCONNECTED",1000).show();
         }
        */
   }
	}

브로드캐스트리시버 소스구요

    @Override
	public void onCreate() 
    {
		// TODO Auto-generated method stub
    	
    	intent3 = new Intent(Service.this, Receiver.class);
    	   if(intent3.getAction().equals(ACTION1))
           {
                 Toast.makeText(context,"Be received action aboutACTION_POWER_CONNECTED",1000).show();
           }
           else if(intent3.getAction().equals(ACTION2))
           {
                  Toast.makeText(context,"Be received action aboutACTION_POWER_DISCONNECTED",1000).show();
           }
    
			        super.onCreate();
			        
	}

 서비스 소스 일부입니다.

브로드캐스트리시버 쪽에 주석처리 해놓은 부분을 service의 onCreate() 에 넣었는데

서비스 실행시키자마자 에러가 뜨네요 ㅠ 어디가 잘못된건가요?

망디 (630 포인트) 님이 2013년 8월 12일 질문

2개의 답변

0 추천
에러로그를 올려주셔야 확실하게 알 수 있습니다.

예상되기로는 intent3을 생성하고 안에 액션을 지정해주지 않았는데

그 바로 밑줄에서 getAction() 을 하면 null 값이 리턴될텐데 .equals로 비교하려고 하니

널포인터익셉션이 떨어져서 에러가 나는 현상일것으로 짐작되네요

그리고 저렇게 사용하는게 아닙니다.

구현은 리시버쪽에 하시고 서비스에서는 registerReceiver 를 하시면 됩니다.
Gradler (109,780 포인트) 님이 2013년 8월 13일 답변
0 추천
다른건 모르겠지만

super.onCreate() 호출은

onCreate메소드 젤위에서 해야하는거 아닌가요?

고거 안하면 익셉션 나는걸로 알고 있긴한데...
익명사용자 님이 2013년 10월 28일 답변
...