Nuke Olaf - Log Store

[Android] 안드로이드 - 브로드 캐스트 리시버, 정적 / 동적 등록에 대한 실수 본문

Android

[Android] 안드로이드 - 브로드 캐스트 리시버, 정적 / 동적 등록에 대한 실수

NukeOlaf 2019. 12. 1. 15:34

안드로이드 브로드캐스트 리시버가 ACTION 받는 방법에는 두 가지가 있다.

1. manifest.xml 파일에

<receiver> </receiver> 안에 ACTION을 등록해놓고 사용하는 정적인 방법

2. 매니페스트에 등록하지 않고, 액티비티의 자바 클래스 파일내에서

intent filter 와 receiver 의 인스턴스를 생성하여 생명주기마다 regeist/unregist 해주는 방법

 

나는 SMS를 받아오는 Reciever 를 정적으로 만들어놓고,

ACTION_POWER_CONNECTED

ACTION_POWER_DISCONNECTED

ACTION_TIME_TICK

ACTION_TIME_CHANGED

다음의 액션들도, 매니페스트 파일에 등록해놓고 사용하려고 했었다.

그러나, 실행이 되지 않았다.

왜 그런지 알아보니...

https://developer.android.com/reference/android/content/Intent.html#ACTION_TIME_TICK

 

Intent  |  Android Developers

 

developer.android.com

ACTION_TIME_TICK

Added in API level 1

public static final String ACTION_TIME_TICK

Broadcast Action: The current time has changed. Sent every minute. You cannot receive this through components declared in manifests, only by explicitly registering for it with Context#registerReceiver(BroadcastReceiver, IntentFilter).

으음;;; 안드로이드 디벨롭퍼 사이트에서 매니페스트에 등록해놓고 못쓴다고 적어놓았었구나... 난 바보다...

나머지 ACTION 들도 아마 매니페스트에 등록하는 정적인 방법으로 사용하지 못하기 때문에 작동이 안된것 같다.

나는 바보 멍충이다...ㅠㅠ

 

Comments