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

리시버가 실행이 되지 않습니다

0 추천

우선 동적으로 ? 사용하는 경우에는 작동을 합니다. 하지만 정적으로 manifest에 선언해서 사용할 때 작동이되지않네요 ㅠㅠ 

<receiver android:name=".Lock_BroadcastReceiver"
    android:enabled="true"
    android:exported="true">
    <intent-filter>
        <action android:name="test.com.action.TEST"/>
    </intent-filter>
</receiver>

receiver를 등록해주고 

public class Lock_BroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        Toast.makeText(context, "요청된 엑션", Toast.LENGTH_SHORT).show();

    }

}

 

간단하게 해당 액션에 작동할 토스트메세지를 만들어주고 

findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        sendBroadcast(new Intent("test.com.action.TEST"));
    }
});

 

메인에서 intent로 액션을 넣어서 던져줫는데..... 감감무소식입니다 ㅠㅠ 

우선 버튼은 로그를 넣어서 실행해보면 정상작동하고 있습니다 뭐가 문제일까요 ? 

 

intentfilter를 만들어서 동적으로 리시버를 만들어서 사용하면 작동은 합니다 그런데 여기에도 문제가 있는 건 임의 action이 아니라 이미 존재하는? android.intent.action.SCREEN_ON 과 같은 액션은 에러가 발생하면서 죽어버리네요 ㅠㅠ .... 

 

 

 

 

seungje (180 포인트) 님이 2018년 4월 4일 질문
해결하셨나요?ㅠㅠ 저도 이와 비슷한 문제 때문에 골치를 썩고 있네요...

1개의 답변

0 추천
Android Oreo target app부터 implicit BR을 사용하지 못합니다. 아마 그 문제인 듯 한데,

targetSDK를 25 미만으로 한번 낮춰보시길 권해드립니다.
디자이너정 (42,810 포인트) 님이 2018년 4월 4일 답변
...