Android Services vs Android Broadcast Receiver

MB_Coder 채널에 오신 것을 환영합니다 서비스는 사용자가 포 그라운드에서 수행하는 작업 (활동 간 전환)과 상관없이 일정 기간 동안 백그라운드에서 작업을 수행하기위한 것입니다

예를 들어 뮤직 플레이어 서비스 서비스 의미 백그라운드에서 작업 수행 에 관계없이 일정 기간 동안 사용자가 전경에서 무엇을하고 있는지 (활동 간 전환) 예를 들어 뮤직 플레이어 서비스 방송 수신기는 의미합니다 의도에 응답하고 보통 서비스 나 시스템 이벤트에 의해 보내지는 하나, 여기에 예제가있다

사용자가 NFC 지원 전화를 건드릴 수도 있습니다 시스템이 생성하는 태그에 그것의 의도, 그리고 등록 된 수신자 일부 설정을 변경하도록 처리합니다 (볼륨을 변경하거나 Bluetooth를 켜십시오) 귀하는 언제 서비스를 이용합니까? 일반적으로 모든 (가져 오기, 구문 분석, 캐싱, 데이터베이스 업데이트) 귀하의 신청서에서 중요한 것은 서비스로 옮겨야합니다 BroadcastReceiver는 언제 사용 하시겠습니까? 주로 서비스를 시작하는 데 사용됩니다

일반적으로 응용 프로그램에 따라 다릅니다 대부분의 응용 프로그램은 "ConnectivityManager" 네트워크가 언제든지 브로드 캐스트 위 또는 아래입니다

Services in Android – Part 1

안녕 얘들 아 여기 Codetutor 내 이름은이 특별한 Anil Deshpande입니다 비디오 안드로이드에서 서비스에 대해 이야기하고 싶습니다 서비스는 가장 안드로이드에서 매우 중요한 개념

그것은 다른 활동의 안드로이드의 네 가지 주요 구성 요소 중 하나입니다 방송 수신기 및 컨텐트 제공자를 포함 할 수있다 서비스는 백그라운드에서 장기간 실행되는 작업 내가 장기 실행 과제를 말할 때, 그것은 아주 큰 파일을 배경이나 서비스에서 다운로드하는 것과 같은 것 UI가없는 이유는 분명히 다운로드 진행률을 계속 표시하여 사용자가 바쁩니다 따라서 서비스는 UI

여기서 중요한 단어는 "배경"입니다 따라서 서비스 구현에서 기본적으로 우리는 서비스 구현 방법에 대해 이야기 할 것입니다 어떻게 서비스를 시작합니까? 내가 말하면 배경, 실제로 별도의 스레드에서 백그라운드에서 실행합니까? 그래서 훨씬 더없이 내가 데모 코드를 다시 사용하겠습니다 내 다른 이전 비디오 중 일부는 여기에 두 개의 버튼이 있다는 것을 알 수 있습니다 서비스 및 서비스 중지 및이 특정 버튼 클릭 나는 서비스를 시작하고 싶다

그래서 우선 서비스를 만들어야합니다 새로운 수업을 만들어 보자 이 MyService로 호출하여이 특정 Java 클래스 서비스를 작성하겠습니다 서비스 클래스를 확장하여 서비스 클래스를 확장해야합니다 당신이 특정 메소드를 재정의해야하는 클래스 그래서 첫 번째 방법은 시작 명령에 다음 바인딩에 다음 당신이에 파괴하면 시작 명령을 볼 수 있으므로 시작 명령을 사용하십시오

메소드가 더 이상 사용되지 않으므로 이것을 제거합니다 가장 중요한 방법 이 3 개입니다 onStartCommand는 언제든지 실행되는 메소드입니다 당신은 서비스를 시작합니다 어떻게이 특정 서비스를 시작합니까? 이 특정 시작 서비스 버튼을 클릭하면 서비스가 시작됩니다 이를 위해서는 서비스를 시작하기위한 의도를 만들어야합니다

Android는 항상 권장합니다 명시 적 의도 사용 여기에 의도를 만들어 보겠습니다 개인 의도 서비스 이 serviceIntent를 초기화해야하므로 서비스 의도가 다음과 같습니다 새로운 의도 첫 번째 매개 변수는 응용 프로그램 컨텍스트를 얻고 말할 수있는 컨텍스트입니다 두 번째 매개 변수는 서비스입니다

그래서 내 봉사 클래스와 또 다른 중요한 것은 당신이 가진 서비스입니다 생성 된 파일을 매니페스트 파일에 선언해야합니다 매니 페스트 파일을 열어 보겠습니다 지금 어떻게이 특정 버튼을 클릭하면 서비스를 시작할 수 있습니까? 메쏘드 시작 서비스에 전화하겠습니다

나는 의도를 전달해야한다 그것은 servicntent이고 다른 것은 너다 서비스 할 수 없다 서비스가 시작되면 명시 적으로 서비스를 중지 할 방법이 없습니다 서비스의 수명주기는 서비스 자체에서 관리되어야합니다 우리가 할 수있는 일은 당신이 뭔가를 할 수있는 onstart 명령 내부의 서비스입니다

자기 자신을 멈추기 전에 기본적으로 서비스를 멈추게 할 것입니다 서비스에서 수행하려는 모든 작업 지금 내가 할 일은 이 로그가 기록 될 로그 문만을 쓸 것입니다 특정 메소드가 시작되거나 서비스가 시작됩니다 로그 도트, 나는 사용하고있다

이 경우 상수 문자열 상수 인 서비스 데모가 있습니다 나는 그것을 태그 문자열로 잃을 것이고 내가 여기에 표시하고 싶은 것은 내가 원하는 것이다 서비스의 스레드 ID를 표시한다 그래서 startCommand, 스레드 ID, 스레드 도트 현재 스레드를 얻을 필요가, 도트 ID를 얻습니다 그리고 주요 활동에서 또한 스레드 ID를 표시하고 있습니다

이제는 서비스를 시작할 때 별도의 스레드에서 실행되는 경우이 스레드 ID 여기에 주요 활동 및 내가 표시하고있는 서비스 ID가 표시됩니다 내 서비스에서 달라야한다 그래서 우리가 그것이 다른지 보자 이 코드를 실행 해 보겠습니다 주요 활동 스레드 아이디어는 하나이고 나는 그것의 클릭에 서비스를 시작할 것이다 시작 명령의 특정 버튼이 실행되고 스레드 ID가 하나도 그래서 배경을 말할 때 기본적으로 UI가 없다는 것을 의미합니다

의미는 기본적으로 장기 실행중인 경우 서비스는 항상 다른 스레드에서 실행됩니다 당신이 당신이 그것을 실행하지 않는다는 것을 확인하지 않는다면 스레드를 생성하여 별도의 스레드가 있다면 응용 프로그램이 끝납니다 응답하지 않는 오류, 여기에 다른 로그 문을 넣어서 서비스 가져 오기 멈췄다 내가이 서비스를 다시 시작하도록하겠습니다 서비스를 시작하고 당신도 볼 수 있습니다

또한 서비스가 파괴되면서 로그 아웃되는 것은 내가 작성했기 때문입니다 이 stopSelf, 그리고 만약 내가 이것을 제거하고 다시 실행, 서비스를 시작하고 볼 수 있습니다 그 서비스가 전혀 멈추지 않는다는 것 따라서 서비스 내부에서 서비스를 중지해야합니다 그래서 다른 곳에서 서비스를 중단 할 수 없으므로 자기를 멈추게하는 것이 매우 중요해진다 시작 명령에서이 특별한 것을 관찰 할 수는 없습니다 정수 변수를 반환합니다

기본적으로 일종의 플래그를 반환합니다 서비스의 행동과 또한 나는 bind라는 메소드를 가지고있다 내가 바운드에 대해서 이야기하고있을 때 이것들이 떠오르는 것에 대해 이야기하지 않았다 서비스 다음 비디오에서 나는 바운드에 의한 것이 무엇을 의미하는지에 대해 이야기 할 것입니다

어떤 경우에는 당신이 이것을 사용할 것이며 어떤 행동이 결정되었는지 이 특정 시작 명령에서 반환되는 플래그에 의해 메소드가 채널에 계속 머물러있어 라 이 특정 채널에서 배우고 싶은 새로운 것들을 알려주십시오 의심의 여지가있다 아래 댓글란에 적어주세요 채널 구독을 잊지 마세요

돌보다 안녕

How to create a complete SMS Gateway app (android app)

우리는 SMS 게이트웨이 응용 프로그램을 만들 것입니다 이 앱은 모든받은 편지함 SMS를 읽으십시오

또한 모든 SMS를 보낼 우리의 MySQL 데이터베이스 API를 사용하여 000webhostcom을 사용하겠습니다 데이터베이스 및 API 용 이 응용 프로그램의 목적은 배우는 것입니다 API 용 발리 라이브러리 사용 방송 수신기 앱에서 SMS 보내기 및 받기 SMS를 사용한 등록 프로세스 WhatsApp와 같은 당신이 볼 수 있듯이 보내기 버튼을 누릅니다 메시지를 보냅니다 번호로 여기에 그 메시지가 있습니다

앱에서 전송합니다 어떤 SMS에서 나 오는 숫자가 나온다면 나는 브로드 캐스트를 받게 될 것이다 나는 토스트에 그 메시지를 보여줄 것이다 동시에 우리의 데이터베이스에 저장됩니다 여기에 데이터베이스에있는 메시지가 있습니다 또한 우리는 SMS를 보낼 것입니다 api를 사용하여 우리 장치에서 당신은 아름다운 것을 만들 수 있습니다

SMS 전송 양식 이것은 우리의 SMS입니다 firebase 및 api를 사용하여 전송되었습니다 프로젝트를 시작하기 전에 github 링크로 이동하십시오 여기 모든 파일을 업로드했습니다 php 폴더에는 세 개의 파일이 있습니다

우리 프로젝트에 필요했다 하나의 파일은 장치를 등록하기위한 것입니다 두 번째는 모두를 저장하는 것입니다 받은 편지함 및받는 SMS 데이터베이스에 세 번째 파일은 API를 사용하여 SMS 보내기 이 파일에서 우리는 firebase를 사용하고 있습니다 mysql 데이터베이스 파일도있다

귀하의 databsae 설정을 위해 프로젝트를 시작하기 전에 너에게 보여줄 게있어 일부 설정 계정을 만든 다음 로그인하십시오 일단 로그인하면 당신은 당신이 파일 관리자에 대한 액세스 파일 관리자를 열고 파일 업로드 그 세 파일은 프로젝트에서 제공됨 이 파일을 업데이트하십시오 당신의 설정에 따라 당신은 데이터베이스 호스트, 사용자를 변경해야합니다 암호 및 데이터베이스 너는 바꿀 필요가있어 firebase의 인증 키 나중에 내가 너에게 말할거야

PHP myadmin 사용하여, 이것은 데이터베이스 선택 방법 mysql에서 전체 databsae를 임포트한다 빈 활동으로 새 프로젝트 시작하기 확장 파일 레이아웃으로 이동 선형 레이아웃으로 변경하십시오 수직 방향 및 20dp까지의 마진 드래그 앤 드롭 두 개의 편집 텍스트 하나는 전화 번호이고 메시지의 두 번째 두 개의 버튼 하나는받은 편지함을 읽고 SMS를 보내는 초 받은 편지함을 보여주는 목록보기 코드를 허용한다 레이아웃을 객체와 연결 허가 선언 전송을위한 요청 코드 SMS 읽기 및 받기 당신은 어떤 숫자라도 가질 수있다 121, 122, 123을 사용하고 있습니다

API에 대한 최종 문자열 만들기 우리는이 URL에 SMS를 보냅니다 우리 앱에 위험한 권한이 필요하다 그러므로 우리는 우리가 매번 그 허가를 받다 우리는 그 권한을 요구하다 앱에 권한이 있는지 확인하는 방법 우리는 ContextCompatcheckselfpermission을 호출한다

방법 앱에 권한이있는 경우 이 메소드는 허가를 돌려 준다 앱이 계속 진행할 수 있습니다 앱이 작업을 진행할 수 있습니다 앱에 권한이없는 경우 이 메소드는 허가 거부를 돌려 준다 앱은 명시 적으로 사용자에게 허가를 요청하십시오 우리 앱이 허가를 받았을 때 수표 거부로부터의 거부 우리는 그 허가에 대한 사용자 모든 앱을 정의해야합니다 매니페스트 파일의 사용 권한 우리는 또한 인터넷이 필요합니다

API 액세스 권한 컨텐트 Resolver는 URI를 결정합니다 특정 콘텐츠 제공 업체에게 커서는 결과 집합을 포함합니다 에 대한 쿼리의 안드로이드의 데이터베이스 Cursor 클래스에는 앱을 허용하는 API 열을 읽을 쿼리에서 반환되었습니다 뿐만 아니라 결과 집합의 행 나는 또한 방법을 보여주고있다 모든 열 이름 가져 오기 나는 또한 방법을 보여주고있다

모든 열 이름 가져 오기 모든 열 이름을 덤프 한 후 나는 너에게 해설을한다 변수 설정 필수 열 인덱스로 레코드 세트가없는 경우 여기에서 돌아온다 이전의 arrayadapter 값을 제거하십시오 전화 번호 및 메시지 받기 목록보기에 표시 할 문자열을 설정하십시오 우리는 날짜 형식을 데이터베이스 날짜 저장 형식 다시 문자열 만들기 우리의 배열 어댑터에 추가 여기서는 API 호출을 코딩 할 것입니다

Volley는 HTTP 라이브러리입니다 adroid 애플 리케이션을위한 네트워킹을 만든다 쉽고 빠르게 자동으로 발리 슛 네트워크 요청을 예약합니다 이 줄을 복사하여 붙여 넣기하십시오 그것은 gradle 모듈 애플 리케이션에서 우리는 허가 방법을 적용했지만 우리는 또한 모든 곳에서 허가를 사용합니다

우리가했던 것과 비교하면 매우 쉽습니다 목적은 이미 완료된 좋은 코드 발리볼 자바 복사 할 수 있습니다 우리의 애플 리케이션에 코드 및 수정 자바 클래스를 만들 수 있습니다 방송 수신기 용 우리는 모든 이 클래스에서 들어오는 SMS 방송 수신기는 Android 구성 요소 에 등록 할 수있는 시스템 또는 응용 프로그램 이벤트 우선 우리의 api url 그런 다음 send sms volley code를 얻는다 번들을 구하다

번들이 null가 아닌 경우, pdus를 취득한다 PDUS는 프로토콜 데이터 단위를 나타냅니다 전달 된 정보 네트워크 계층을 통해 우리는 msg를 읽고 get 필수 입력란 우리가받은대로 데이터베이스에 저장 우리는 방송을 등록하고있다 매니페스트 파일의 수신기 이제 마지막 단계는 서버에서 SMS를받는 것입니다 goto consolefirebase

googlecom 및 프로젝트를 등록하고 안드로이드 앱 만들기 안드로이드 애플 리케이션을 위해 우리는 패키지 이름이 필요합니다 매니페스트 파일에서 복사 에 대한 자바 클래스를 만들 수 있습니다 모든 firebase 메시지 받기 서버 키를 가져와야합니다 PHP 파일에 넣기 헤더에서 Authrization 키로 그 후에 우리는 쉽게 보낼 수 있습니다

우리의 PHP 파일에서 메시지 우리는 앱이있는 기기 그것은 쉽게 보낼 수 있습니다 특정 사용자에게 보내는 메시지 우리는 Permissioneverywhere를 사용할 것입니다 이 시점에서 SMS를 보낼 수있는 권한을 얻으려면 앱이 준비되어 있으며 보낼 수 있습니다 앱에서 SMS를 읽습니다 웹을 사용하여 SMS를 보낼 수 있습니다

API를 통한 애플리케이션 모든받은 편지함을받을 수 있습니다 한 번의 클릭으로 SMS를 보낼 수 있습니다 이 앱은 완전한 앱입니다 보고 주셔서 감사합니다 너를 봐

Broadcast Receivers (Android Development Fundamentals, Unit 3: Lesson 7.3)

[음악 재생] 발표자 : Android 애플리케이션은 아무 것도하지 않습니다 특정 유형의 메시지가 나타날 때까지 안드로이드 운영 체제에 의해 방송, 또는 다른 응용 프로그램

앱이 어떤 방식 으로든 반응하기를 원한다고 가정 해 보겠습니다 시스템 이벤트가 발생할 때 예를 들어, 음악 앱을 만들 수 있습니다 그리고 앱을 실행하고 싶습니다 헤드폰이 연결되어있을 때 음악 재생을 시작하려면, 헤드폰을 제거하면 음악 재생이 중단됩니다 이러한 이벤트가 발생할 때 앱에서 어떻게 알 수 있습니까? 음, 여기에 우리는 브로드 캐스트 리시버가 있습니다

몇 분 후에 이해할 수 있습니다 이 전체 메커니즘은 구현과 관련됩니다 방송 의도와 방송 수신기의 그래서이 세션에서 우리는 방송 의도가 시스템 전반의 메시지를 방송하는 방법 다른 구성 요소와 방송 수신자의 청취 방법 해당 특정 방송 의도에 대해 또한 사용자 정의 브로드 캐스트를 작성하는 방법도 배웁니다 보안 문제에 대해서도 논의 할 예정입니다 로컬 브로드 캐스트를 사용하여이를 극복하는 방법 앱 내에서 브로드 캐스트를 전송할 수있게 해줍니다

대신 시스템 전체 응용 프로그램 브로드 캐스트 인 텐트는 브로드 캐스트되는 인 텐트 개체입니다 의사 소통을 돕는 의도 두 구성 요소 사이 따라서 시작을위한 메커니즘을 제공하는 것 외에도 응용 프로그램 활동, 의도 또한 방법으로 사용됩니다 시스템 전반의 메시지를 다른 구성 요소에 브로드 캐스트하는 방법 시스템에

이 메커니즘에서 여기에 방송 의도 사용 된 의도와 완전히 별개입니다 활동을 시작하려면 사용자가 현재 상호 작용하고있는 것을 보여 주며, 시작 활동에 보냅니다 달성하려는 하나의 활동에만 영향을줍니다 특정 작업 반면, 방송 의도는 백그라운드 작업입니다

사용자가 일반적으로 알지 못하는 sendBroadcast를 통해 전송됩니다 기본적으로 여러 응용 프로그램에 영향을 줄 수 있습니다 인 텐트를 수신하기 위해 등록 된 방송 수신기는 구성 요소입니다 어떤 일이 일어나고 있는지를 듣고 등록 할 수 있습니다 시스템 또는 응용 프로그램 이벤트의 경우, 그들이 응답으로 무언가를한다는 것을 의미합니다

방송되는 그 메시지에 응용 프로그램은 특정 들어오는 이벤트를 수신합니다 sendBroadcast에 의해 보내지고, 방송을 등록함으로써 리시버 방송 의도가 발생할 수 있음 특정 이벤트가 발생했을 때 시스템에서 체계 예를 들어, 화면을 알리는 방송 꺼 졌거나 배터리가 부족한 경우, 또는 그림이 캡처되었습니다

또는 다른 응용 프로그램에서 유래 할 수 있습니다 음악을 시작할 때 앱을 설정할 수도 있습니다 당신은 헤드폰에 연결합니다 따라서 메시지를 받으면 백그라운드에서 실행됩니다 그 헤드폰이 연결되어 있고 발사로 응답 귀하의 음악 응용 프로그램

방송 사업자 수신기는 사용자 인터페이스를 표시하지 않지만, 활동이 종료 된 경우에도 백그라운드에서 실행됩니다 예를 들어 음악 앱에서 알림을 게시하는 경우 다가오는 헤드폰 이벤트에 대해 사용자에게 알리기 위해 연결되면 상태 표시 줄 알림을 만들 수 있습니다 브로드 캐스트 이벤트가 발생할 때 사용자에게 경고합니다 따라서 방송 수신기가 구현됩니다 Android 브로드 캐스트 수신기 클래스 확장 onReceive 메소드를 오버라이드 (override)하는 것

특정 브로드 캐스트 인 텐트를 청취해야합니다 브로드 캐스트 인 텐트가 수신되어 전달 될 때 onReceive에게,이 시점에서, 메소드 필요한 모든 작업을 수행하는 데 5 초가 걸립니다 수신기가 파괴되기 전에 브로드 캐스트 리시버가 필요하지 않습니다 항상 뛰는 것

일치하는 인 텐트가 감지 된 경우, Android 런타임 시스템이 자동으로 실행됩니다 전화하기 전에 방송 수신기를 시작하십시오 onReceive 메소드 시스템이 부팅을 완료하는 것처럼, 또는 무선 네트워크 연결이 끊어집니다 Wi-Fi 상태가 변경 될 때 따라서 표시된대로 이러한 작업을 지정할 수 있습니다

앱의 인 텐트 필터 내부 화면 앱이 맞춤 의도를 브로드 캐스팅 할 수도 있습니다 이는 개발자가 정의한다는 의미입니다 사용자 정의 인 텐트에는 사용자가 화면에서 제공 한 데이터가 포함될 수 있습니다 해당 응용 프로그램이 사용자 정의 의도를 브로드 캐스팅하도록하려면, 우리는 하나를 보내야합니다 관심있는 모든 방송에 인 텐트를 브로드 캐스트하려면 수신기에는 두 가지 주요 방송 클래스가 있습니다

일반 방송을 사용하십시오 sendBroadcast 메서드를 사용하여 보내집니다 또는 주문 방송과 함께 전송됩니다 sendOrderBroadcast 메소드와 함께 따라서 사용자 정의 의도를 전송 한 후, 수신기를 등록해야합니다

사용자 정의 의도 및 의도에 대한 동작을 정의합니다 androidmanifestxml 안의 수신기 용 필터 SendBroadcast 메서드가 완전합니다 비동기, 즉 브로드 캐스트 이벤트 또는 인 텐트 모든 수신기에 의해 수신된다

비동기식으로 수신기는 정의되지 않은 순서로되어 있으며, 종종 동시에 효율적이지만 수신자는 다른 사람의 결과를 사용할 수 없습니다 수신기 sendOrderBroadcast는 한 번에 하나의 수신자에게 전달됩니다 각각의 수신기가 인 텐트를 실행함에 따라, 결과를 다음 수신자에게 전파 할 수 있으며, 또는 방송을 완전히 중단시킬 수 있습니다

그래서 그것은 다른 수신기들에게 전달되지 않을 것이다 다른 수신기는 제어 할 수 있습니다 일치의 androidpriority 속성과 함께 의도 필터 우선 순위가 동일한 수신자는 임의의 순서로 실행됩니다

수신자가 결과를 전파 할 수있게하려면 또는 방송을 중단하려면 방송을 주문해야합니다 sendOrderBroadcast를 사용합니다 이 방송 전체 메커니즘이 어떻게 작동하는지 이해합시다 수신기가 구현 될 수있다 브로드 캐스트 리시버를 생성하기 위해서는 다음 단계가 필요합니다 새로운 클래스를 만들어야합니다

브로드 캐스트 리시버의 서브 클래스입니다 이베이스의 onReceive 메소드를 구현 한 클래스 수업 이벤트가 발생할 때마다 Android onReceive 메서드를 호출합니다 응용 프로그램이 특정 브로드 캐스트 인 텐트를 청취합니다 방송 수신기를 등록함으로써 두 가지 방법으로 코드를 등록 할 수 있습니다

(예 : 활동 내 또는 매니페스트 파일 내) 방송 수신기들을 정적으로 등록하기 위해, AndroidManifestxml에 등록하십시오 방송을 등록함으로써 동일한 효과를 얻을 수있다 수신기를 프로그램 적으로 또는 동적으로, 액티비티 클래스의 register receive 메소드 사용 적절한 구성 의도가있을 때 함께 그 대상과

화면에서 보듯이 Android 브로드 캐스트 수신기를 확장하는 클래스입니다 이런, 이런 여기서 onReceive 메소드를 볼 수 있습니다 보시다시피, 이것은 브로드 캐스트 수신기가 Android 브로드 캐스트 수신기를 확장하여 구현됩니다 onReceive 메소드를 오버라이드 (override)합니다

그래서 CustomReceiver라는 새로운 클래스를 만들었습니다 BroadcastReceiver를 확장 중입니다 그래서 방송 수신기를 만든 후에, 우리가 아는 다음 단계는 그것을 등록하는 것입니다 AndroidManifest로 한 번 시도해 보겠습니다 여기서 수신기 항목을 추가해야합니다

하나 이상의 인 텐트 필터를 포함하고, 각각은 브로드 캐스트 인 텐트의 액션 문자열을 포함한다 수신자가 요구되는 예제에서 볼 수 있듯이 특정 의도를 나열합니다 그리고 다른 구성 요소와 마찬가지로, 우리는이 receiver 요소를 application 요소 안에 정의한다 대안 적으로, 정적 등록을 통해, 수신자를 등록 및 등록 취소 할 수도 있습니다 컨텍스트 클래스를 통해 한 번에 수신기 메서드를 등록합니다 onCreate 또는 onResume 활동 메소드에서

그리고 onDestroy에서 수신기 메소드를 등록 취소합니다 또는 onPause 액티비티 메소드에서 슬라이드의 맨 아래에 코드 스 니펫이 표시됩니다 그리고 당신이 볼 수 있듯이, 활동의 등록 수신기 방법 적절하게 의도를 구성했을 때 함께 수업을 진행하다 개체에 대한

동적으로 registerReceiver 등록을 잊지 마라 수신자 등록 방법을 사용하여 이것을 잊어 버리면 안드로이드 시스템 유출 된 브로드 캐스트 리시버 오류를보고합니다 예를 들어, 수신을 등록한 경우 inResume 활동의 메소드, onPause 메서드 내에서 등록을 취소해야합니다 방송 수신기는 Android의 매우 중요한 구성 요소입니다

몇 가지 중요한 시스템 목록이 있습니다 액션 런타임이 변경된 것과 같은 이벤트는, 또는 시스템 부팅이 완료되었을 때, 그리고 훨씬 더 이 방송 활동을 확인해보십시오 이 링크에서 onReceive 메소드 구현에 대해 이야기했습니다

방송 수신기 클래스의 기본 클래스의 방송 수신기가 갖는 이벤트가 등록 된 사건, onReceive 메서드 수신자의 전화 번호는 Android 시스템에 의해 호출됩니다 여기서는 onReceive 메서드를 보여줍니다 두 개의 인수를 취합니다 문맥

액세스에 사용할 수있는 컨텍스트 개체 추가 정보 또는 서비스 또는 활동 시작 두 번째로, 의도 객체, 액션 당신은 수신기를 등록하는 데 사용할 수 있습니다 사용자 지정 브로드 캐스트, 동작 문자열 고유 한 브로드 캐스트 이벤트를 식별하는 일반적으로 응용 프로그램의 Java 패키지를 사용합니다 이름과 텍스트 예를 들어, 다음 브로드 캐스트 고유 한 동작 문자열을 포함하는 의도, 패키지 이름을 접두사로 포함합니다 이 작업을 설명해야합니다

활동 및 방송 수신기에서도 마찬가지입니다 당신은 우리가 어떻게 사용자 정의 의도를 보냈는지 알고 있습니다 우리가 가지고있는 sendBroadcast 메소드를 사용하여 이전 슬라이드에서 배웠습니다 그래서 여기에 다음을 사용하여 액션을 첨부하는 방법이 있습니다 사용자 정의 인 텐트

등록을 취소하는 코드는 다음과 같습니다 귀하의 등록 된 방송 수신기, unregisterReceiver 메소드를 호출하여 Android는 보안 기능과 작업을 통합합니다 개발자 및 장치 구현 자와 Android 플랫폼 및 생태계를 안전하게 유지합니다 우리가 방송 수신기로 작업 할 때, 보안 측면에서 몇 가지 사항을 고려해야합니다

그래서 하나씩 이해합시다 Android 애플리케이션에서 브로드 캐스트 사용 문맥과 함께 사용되는 수신기처럼 때로는 문제를 일으킨다 다른 응용 프로그램에서도 수신 할 수 있습니다 따라서 앱 간 경계를 고려해야합니다 의도 네임 스페이스는 전역입니다

의도 동작 이름 및 기타 문자열이 자신이 소유 한 네임 스페이스에 쓰여 있거나, 당신은 다른 응용 프로그램과 충돌합니다 등록 수신자 메소드를 사용할 때, 다른 응용 프로그램이 브로드 캐스트를 보낼 수 있습니다 등록 수신기에 브로드 캐스트를 보낼 수있는 사람을 제어 할 수 있습니다 사용 권한을 사용하여

그리고 방송을 보내거나 메시지를 보낼 때, 일반적으로 다른 모든 응용 프로그램이이 브로드 캐스트를 수신 할 수 있습니다 그러나 이러한 브로드 캐스트를 수신 할 수있는 사용자를 제어 할 수도 있습니다 권한을 통해 즉, 액세스 권한을 적용 할 수 있습니다 발신자 또는 수신자

전송할 때 권한을 시행하려면, 당신은 허가 인수를 제공한다 방송 전용 수신기를 보내려면 요청하여이 허가를 받았다 manifestxml 파일에 사용자 권한 태그 포함 방송을 수신 할 수 있습니다 이 수신기는 브로드 캐스트 인 텐트를 수신합니다

필요한 권한이 있어야합니다 그리고 수신 할 때 허가를 얻기 위해, 등록 할 때 허가를 당신의 수신기, registerReceiver 또는 AndroidManifestxml의 수신자 태그에 추가하십시오 그래서 유일한 방송사는 사용자 권한을 사용하여이 사용 권한이 부여되었습니다 태그가 AndroidManifest

xml에 있습니다 수신자에게 의도를 보낼 수 있습니다 보안 문제가 전혀 존재하지 않습니다 로컬 브로드 캐스트 매니저 클래스를 사용할 때 보안 통신 메커니즘을 구현하는 데 사용 되었기 때문에 앱 구성 요소 내에서 로컬 브로드 캐스트 관리자를 사용하여 브로드 캐스트 및 등록 수신기는 거기에서 안전한 방법을 제공합니다 앱 간 통신이 없습니다

슬라이드 하단의이 예 로컬 브로드 캐스트 관리자를 사용하여 보내고받는 방법을 보여줍니다 방송 인 텐트 오브젝트를 생성하는 것만 큼 쉽습니다 그 의도 객체를 사용하여 sendBroadcast를 호출하고 같은 registerReceiver에 대해서도 마찬가지입니다 onResume에서 의도 필터는입니다

지정된 동작을 위해 수신기를 등록하기 위해 생성됩니다 의도 필터 생성자는 작업을 매개 변수로 사용합니다 따라서이 작업으로 브로드 캐스트를 수신 할 수 있습니다 이 코드는 리시버를 등록하는 방법을 보여줍니다 로컬 브로드 캐스트를 사용하여 의도 필터 사용 매니저와 registerReceiver

그 후에, 수신기는 능력을 가지고 있습니다 지정된 액션으로 브로드 캐스트 받기 ACTION_CUSTOM_BROADCAST 자세한 내용은 참조 자료를 확인하십시오 방송 수신기에 대한 링크 다음 실용적인 방법은 구현시 실습에 도움이됩니다

방송 수신기의 계속 배우고 지켜봐 주셔서 감사합니다

Broadcast Receivers DEMO (Android Development Fundamentals, Unit 3: Lesson 7.3)

[음악 재생] 안녕하세요 다시 오신 것을 환영합니다

이제 브로드 캐스트의 개념을 이해하게되었습니다 수신기, 이제 작은 데모를 살펴 보겠습니다 여기에 응용 프로그램을 만들겠습니다 나는 그것을 MyBroadcastReceiver와 Demo라고 부를 것이다 그리고 최소 15 개의 API 및 빈 활동으로 사용하려고합니다

활동 이름을 주 활동으로 명명하십시오 activity_main과 같은 레이아웃 따라서이 응용 프로그램에는 두 부분이 있습니다 먼저, 내장 브로드 캐스트 리시버를 호출 할 것입니다 배터리가 낮은 방송 수신기라고 가정 해 봅시다

두 번째 부분은 사용자 정의 브로드 캐스트 리시버 호출입니다 그래서, 내가 무엇을 할 것인지, 나는 그 방송을 방아쇠를 당길 것이다 수신자 메시지를 수신한다 그리고 다른 응용 프로그램을 만들어서 이 메시지를 경청하십시오 그리고 거기에 방송 수신기가있을 것입니다

걱정하지 마라, 우리는 그 순간에 도착할 것이다 그러나 먼저 우리가 첫 번째 부분을 이해하게하고, 그것이 내 내장형 방송 수신기를 정확히 호출 할 수있는 방법입니다 먼저 좋은 UI를 만들어 보겠습니다 모든 항목을 삭제하면 텍스트보기가 생성됩니다 그리고이 텍스트를 방송 수신기라고 부를 것입니다

글꼴을 늘리면 30sp가됩니다 좋아요, 철자법을 바로 잡을 겁니다, 폭풍, 방송 수신기 큰 확인 다음으로 버튼을 만들겠습니다 그리고 그 버튼을 In-Built라고 부르 겠어요

방송 수신기 그래서이 사람이 내 내장 방송을 부를거야 리시버 따라서이 버튼을 호출하려면, XML 내부에 OnClick 특성을 만들어야합니다 그래서 나는 OnClick을 할 것이고, 나는 메소드 이름은 callInbuilt입니다

승인, 자바 파일에 같은 메소드 이름을 넣어야합니다 Alt, Enter– 거기 있네 큰 그래서 나는 코드를 넣을 메소드가 있습니다 내 브로드 캐스트 리시버에 전화하기

우리 모두는 이것을 개념으로 보았습니다 방송 수신기를 생성하기 위해, 클래스를 확장하여 Java 클래스를 만들어야합니다 BroadcastReceiver 그런 다음 매니페스트 파일에 항목을 입력해야합니다 그래서 나는 그것을 수동으로하거나 쉬운 방법이 있습니다

개발 패키지를 마우스 오른쪽 버튼으로 클릭하십시오 New로 이동하십시오 기타로 이동하십시오 그리고 당신의 방송 수신기가있을 것입니다 그것을 클릭하고 브로드 캐스트 리시버의 이름을 지정하십시오

BroadcastMy1이라고 부르자 이름을 지정할 수 있습니다 그럼 BroadcastFirst로 만들어 보겠습니다 또는 BroadcastInBuilt 그래, 그건 의미가있어

BroadcastInBuilt 이제 내보내기 및 활성화되었습니다 그것을 내 보냅니다 다른 응용 프로그램이 그것을 사용하거나 또는 – 그리고 당신은 그것을 가능하게하고 싶습니다 그래서 당신에게 달렸습니다

다른 응용 프로그램을 원하지 않으면 이 방송 수신기를 사용하려면이 확인란을 선택 취소하십시오 현재로서는 두 가지를 모두 확인하고 있습니다 이제 이걸 볼 수 있습니다 방송 수신기의 도트 Java 파일이 있습니다 그리고 그 안에, 당신이 슬라이드에서 본 것처럼 또한, 하나의 추상적 인 방법이있다

재정의해야합니다 그건 onReceive입니다 그리고 이것은 당신이 코드를 제공 할 곳입니다 브로드 캐스트 또는 메시지에서 데이터를 수신하려면 방송되었습니다 그리고 이것은 모든 멋진 응용 프로그램, 모든 소셜 애플리케이션 – WhatsApp, Facebook, Twitter – 알림 코드를 입력합니다

추가 세션에서 알림 코드를 배우게됩니다 그러나 지금 당장은이 특정 방송 호출되면, onReceive 메소드가 나오고, 그리고 이것은 코드를 넣는 곳입니다 당신은 당신의 사용자를 보여주고 싶습니다 알림을 학습하면 알림 코드를 입력합니다 이리

이제 매니페스트 파일에서 체크 아웃 할 수 있습니다 등록되었거나 등록되지 않았습니다 알았지? 매니 페스트 파일에이 수신기가 실제로 등록되어 있습니다 따라서 수동으로 입력 할 필요조차 없습니다 그래서 이것이 이름입니다

이제 한 가지 더 취해야 할 것이 있습니다 수신기 클래스에 코드를 넣기 전에주의를 기울여야합니다 이 특정 수신기에 동작을 제공해야합니다 또는이 특정 구성 요소 우리 모두는 정확히 어떻게 할 수 있는지 알고 있습니다

그것은 의도 필터 태그의 도움을받습니다 어떤 종류의 행동을 원하니? 이 수신기가 듣고 싶어 이제는 내장 된 메시지가 필요합니다 나는 관습을 만들지 않을거야 그래서 나는 내장 된 메시지를 듣게 될 것입니다

자, 어떤 종류의 메시지가 될 수 있습니까? 모든 메시지가 될 수 있습니다 당신의 힘이 연결될 때 일 수 있고, 또는 전원이 연결되지 않았거나 배터리가 – 여기에 넣으려는 모든 내장 된 메시지, 여기에 넣을 수 있습니다 따라서이 수신기는 이러한 메시지에 반응합니다 그러므로 배터리를 낮추게하십시오 따라서 특정 비율 후에, 당신의 건전지가 낮게되는 경우에, 이 브로드 캐스트 리시버가 호출됩니다

카테고리를 넣으려면 카테고리를 넣을 수 있습니다 저것의 아무 필요도 없다, 그러나 그렇습니다, 그것은이다 당신이 원한다면 좋은 연습 기본적으로 각 구성 요소 이 기본 범주가 있습니다 이제는이 특정 수신기가 호출됩니다 배터리 수명이 단축 될 때마다 특정 비율, 어쩌면 20 %, 어쩌면 15 %보다, 사용중인 장치에 따라 다릅니다

그러나 당신이 행동에서이 수신자를 볼 때마다, 이제 두 개의 수신기가 보일 것입니다 첫째, 수신기 당신이 방금 만든 것입니다 그리고 어디서나 응용 프로그램을 실행하고 있습니다 지금 어디서나 – 또는 사용할 장치를 선택하십시오 해당 장치에는 자체 수신기가 있어야합니다

Android를 사용하고 있다면 전화, 배터리가 15 % 또는 20 % 이하로 떨어지면, 너는 통고를 받는다 이미 앉아있는 수신기가 있습니다 누가 저전력 배터리를 청취하는지 전원 또는 배터리 부족 따라서 두 번째 수신기를 만들었습니다 이제 두 가지 알림이 표시됩니다

나는 알림을 만들지 않을 것이다 그러나 나는 축배를 확실히 창조 할 것이다 그래서 토스트, 내가 그것을 알 수 있도록, 좋아, 내 토스트가 호출되었습니다 그래서 내 수신자가 처리되고 있습니다 그래서 컨텍스트 객체가 필요합니다

브로드 캐스트 수신기 클래스 자체에는 컨텍스트가 없습니다 목적 그래서 여기에 넣을 수 없습니다 그러나 onReceive 메서드에는 컨텍스트 개체가 있습니다 그래서 나는 맥락을 넣을 수 있습니다

그리고 내가 보여주고 싶은 메시지는 배터리가 부족하다고 가정 해 봅시다 청구하십시오 원하는 기능을 무엇이든간에 너 여기두고 싶어 요금 그리고 나서 요금

그리고 나서 보여줘 큰 좋아, 일단 그렇게하면 지금해야 할 일 모두 이 응용 프로그램을 실행하는 것입니다 맞습니까? 하지만 지금 당장 버튼을 클릭하면 아무것도 안 일어날거야 버튼 하나만있을거야

그리고 너는 아무것도 할 수 없을거야 OnClick 내부에 제공된 코드가 없으므로 방법 그래서 여기 보시나요? 아무것도 일어나지 않고있다 그렇다면 방송 수신기를 어떻게 불러 옵니까? 우리 모두는 그것을 압니다 의도라는 이름의 학급 만의 도움으로, 맞습니까? 의도, i1은 새로운 의도와 동일합니다

그리고 이번에는 의도적으로 행동을 취할 것입니다 하나 더 죄송 해요 우리는 여기에 의도를 넣을 필요조차 없습니다 왜? 기본적으로 이미 무엇을 듣고 있습니까? 배터리가 부족합니다

그리고 배터리가 부족하면 배터리가 작동합니까? 배터리가 부족한 경우 그래서 우리는이 의도 부분에 도달 할 것입니다 우리가 주문 수신기를 할 때 그럼 지금 당장 보자 그래서 현재 로선 배터리가 적지 않다는 것을 알 수 있습니다

그렇다면 어떻게 사용자 정의 할 수 있습니까? 그래서 내 응용 프로그램이 실행 중입니다 그렇다면이 특정 배터리 전원을 어떻게 사용자 정의 할 수 있습니까? 더보기로 이동하십시오 여기에서 배터리 옵션을 볼 수 있습니다 이제, 먼저 배터리가 아닌지 확인해야합니다 AC 충전기에

켜져있어 AC 충전기에 아직도 있다면, 그 건전지 낮은 것에 결코 도달하지 않을 것이다 배터리 상태가 충전되는 대신 OK입니다 충전기 연결을 없으면, 이제 배터리 수준을 낮추십시오 보시다시피, 당신이 그것을 낮추 자마자, 두 가지 알림이 나타났습니다

하나는 시스템에서 왔는데 여기에서 알림을 보았습니다 그리고 하나는 축배였습니다 내가 너를 위해 다시 해줄거야 좋아, 너 언제 내려 가니? 배터리 부족 요금을 청구하고 거기에서 통보하십시오

그래서 그게 제가 말하고있는 것입니다 내장 브로드 캐스트 리시버를 호출 할 수있었습니다 여기에 자신의 응용 프로그램에서 호출하지 않고도 그 방송 수신기가 듣고 있기 때문에 특정 행동을 위해 그것은 낮은 배터리 전력입니다 그래서 이것이 당신이 호출하는 방법입니다

이제 맞춤형 브로드 캐스트 수신기에 대해 이야기 해 봅시다 그래서 그 버튼을 다시 만들 것입니다 나는 Inbuilt라고 부를 것이다 아니 나는 그것을 외부라고 부를 것이다

그것을 Custom이라고 부르세요 맞춤형 방송 됐어 그리고이 특정 단추를 부를 때, 나는 관습에 전화해야 해 그래서 우리는 정말로 필요 없다는 것을 알았습니다

이 호출은 내장되어 있습니다 괜찮아 당신은 아무것도 넣지 않아도됩니다 그러나 어떤 시점에서, 당신이 그 버튼을 클릭 할 때, 당신이해야 할 일은 당신이 할 수있는 일입니다 이제는 내 맞춤 방송을 들려주는 곳입니다

수신기 코드 하지만, 우선, 나는 필요하다 커스텀 브로드 캐스트 리시버를 생성합니다 어떻게해야합니까? 개발 패키지를 마우스 오른쪽 버튼으로 클릭하고 새로 만들기로 이동 한 다음, 다시, 기타 및 브로드 캐스트 리시버로 이동하십시오 그리고 그것을 Custom Broadcast라고 부를 것입니다

그리고 이것 안에서, onReceive 안에서, 나는 우리가 텍스트라고 부르는 건배를 올릴거야 텍스트를 보자, 보자, 문맥, 첫 번째 수신자가 호출되고 길이가 짧습니다 쇼 큰 그래서 내 onReceive 방법이 준비되었습니다

그리고 수신기가 준비되었습니다 이제 내가해야 할 일은 내 매니 페스트 파일로 이동하는 것뿐입니다 내 매니페스트 파일에 이미 등록되어 있습니다 내가해야 할 일은 여기에 행동을 제공하는 것뿐입니다 그러면 어떻게 행동을 제공합니까? 의도 필터를 제공합니다

그리고 나는 행동을 제공 할 것이다 자, 이번엔, 나는 원하지 않는다 모든 내장 작업을 제공합니다 내 자신의 행동을 쓰고 싶다 커스텀 브로드 캐스트 리시버가 될 수 있습니다

이것이 실제로 각각의 모든 애플리케이션 – WhatsApp, Facebook 또는 Twitter – 그들은 그들 자신의 행동을 취한다 그리고 그것은 그들 자신의 것입니다 그걸 알 수는 없지, 그렇지? 자신 만의 응용 프로그램을 만드는 경우, 당신도 당신 자신의 행동을 취할 필요가 있습니다 뭐든지 될 수있어, 알았지? 그래서 저는 [[? commy

dotlalitownreceiver ?] 무엇이든 넣을 수 있습니다

나는 이것을 넣을거야 뭐든지 넣을 수 있습니다 이 액션 이름을 기억하십시오 이 작업 만 수행하면 이 브로드 캐스트 리시버가 호출됩니다 그리고 다시, 나는 디폴트를 두겠다

좋아요, 그래서이 수신기에도이 행동을 제공했습니다 지금해야 할 일은, 나의 주요 활동에서, 이런 종류의 수신기를 호출하는 코드를 넣어야합니다 그럼 어떻게 하죠? 보내다 다시, 나는 의도를 사용할 것이다 i1, 새로운 의도

이제 저는 행동을 취할 행동을 취할 것입니다 그리고 나는 놓을 수있다 그 행동은 방금 여기에 보관했던 것과 정확히 같아야합니다 실수를하지 않도록 동일한 동작을 복사하십시오 그것을 쓰는 동안

그런 다음 i1addcategory 다시 카테고리 또한 기본값과 동일한 범주를 지정하십시오 다시, 나는 복사하고있다 그런 다음 여기에 붙여 넣으십시오

그 후, 일단 당신이 당신의 의도를 준비하면, 이 메시지를 방송하면됩니다 이 행동을 방송하면 방송 될 것이다 전체 안드로이드 시스템 그리고 누구든지 방송 수신기는 이 특정 행동을 경청하면, 그들은 부름을받을 것이다 그러면 어떻게해야합니까? 방송을 보내고 귀하의 의도를 전달하십시오

이제, 전체 Android 시스템으로 전송됩니다 그리고 애플리케이션이 이미 설치되어 있다면, 브로드 캐스트 리시버가 설치되어 있어야합니다 이 특별한 행동을 위해 그래서 항상이 메시지를 듣게 될 것입니다 그리고 그것은 호출됩니다

브로드 캐스트 수신기 클래스가 호출됩니다 그리고 그것은 onReceive로 갈 것입니다 수신자를위한 건배가 있습니다 그리고 그것이 당신의 결과물이 될 것입니다 그 버튼을 클릭하면 어디 보자

실행 버튼을 클릭하십시오 자, 이제이 응용 프로그램을 실행 해 봅시다 실행 버튼을 클릭하십시오 좋아, 이제 내 응용 프로그램이 실행 중임을 알 수 있습니다 먼저이 버튼을 클릭하십시오

그건 맞춤 방송이고, 저에게 축배를 보여줘야합니다 됐어 그래서 정말로, 내 방송 수신자는 이것을 위해 등록되었습니다, 그 동일한 메시지를 듣고 있습니다 그것이이 수업으로 돌아간 이유입니다 이 토스트 메시지를 실행했습니다

이것이 맞춤형 방송 수신기를 만드는 방법입니다 이제, 그것은 응용 프로그램 내에 있었던 것입니다 이 브로드 캐스트 리시버가 생성되었습니다 이 응용 프로그램 내에서 새 응용 프로그램을 만들면 어떻게됩니까? 그리고 그 응용 프로그램에서 나는 또 다른 방송을 만든다

수신기 및 그 방송 수신기 이 같은 메시지, 동일한 관례를 듣고있다 메시지? 이제 어떻게 될까요? 음, 이번에는 두 개의 방송 수신기 호출됩니다 즉, 하나는이 응용 프로그램 자체 내부입니다 그리고 다른 하나는이 두 번째 응용 프로그램에서 왔습니다 그럼 그냥 보자

나는 또 다른 프로젝트를 만들 것이다 새 프로젝트 나는 빈 활동을 위해 MyBroadcastDemo02라고 부를 것이고, 마침 이 특정 제 2 적용에서, 나는 정말로 아무것도 할 필요가 없다 하나의 브로드 캐스트 수신기 만 포함하면됩니다

나는 심지어 UI에 대해 걱정하지 않는다 이 응용 프로그램을 열지 않기 때문에 나는이 어플리케이션을 거기에 놓기를 원한다 듣는 브로드 캐스트 수신기가 있어야합니다 특정 메시지

그게 전부 야 그래서 나는 단지 New에 가서 다른 사람들에게 갈 것입니다 Broadcast Receiver를 클릭하고 MyBroadcast02라고하십시오 몹시 떠들어 대다 그리고 onReceive 내부에서 다른 메시지를 넣을 수 있습니다

toastmaketextcontext 두 번째 수신자, 네, 제 2 수신기 – 전화가 무엇인지보고 길이가 짧고 점으로 표시됩니다 자, 여기이 전화는 오직 호출됩니다 이 특정 방송에 행동을 제공하면 수신자가 매니페스트 파일에 있어야합니다

보시다시피 이미 등록되어 있습니다 같은 행동을해야합니다 이전 브로드 캐스트 리시버에주고 있었다 동일한 메시지 방송을 듣고 싶다면, 그래서이 전체 의도 필터를 복사하십시오 수신기에 붙여 넣으십시오

이제이 방송 수신기는 그 같은 메시지를 듣고 당신이 할 일은 단지 설치하는 것뿐입니다 한 번만이 응용 프로그램을 실행하십시오 에뮬레이터 또는 장치에 설치됩니다 당신이 장치를 사용한다면

일단 설치되면 해당 응용 프로그램을 닫을 수 있습니다 내가하는 일의 용도가 무엇인지 말해 줄께 이 모든 게 여기에 있습니다 자, 내 응용 프로그램이 설치되어 있습니다 신청서를 닫습니다

그리고 내 캐시에서 응용 프로그램을 닫습니다 자, 내 응용 프로그램이 실행되고 있지 않습니다 주 메모리에 없습니다 여기 내 요점은 WhatsApp 애플리케이션을 보는 것입니다 또는 Facebook 응용 프로그램 또는 Twitter 응용 프로그램

그들은 심지어 백그라운드에서 실행되지 않습니다 그들은 닫혔다 그러나 누군가가 너에게 통지를 보내면, 당신은 여전히 ​​통보를받을 수 있습니다 방법? 음, 방송 수신기 항상 특정 메시지를 듣고 있습니다 그래서 그것이 내 요점이다

이 특정 예에서 내부에 하나의 응용 프로그램이 있음을 확인하십시오 방송 수신기가 있습니다 그리고 그 메시지를 듣고 있습니다 그래서 그 방송 수신기는 호출 될 것입니다 이제 또 다른 응용 프로그램이 있습니다

누가 그 똑같은 방송을 듣고 있니? 수신기 또는 동일한 메시지 이제, 그 방송 수신기는 또한 둘 다 듣기 때문에 호출된다 동일한 메시지 먼저 이것을 시도해 봅시다 이것을 클릭하십시오

만나다? 두 번째 수신자 호출과 첫 번째 수신자 호출 좋았지? 이것이 방송을 실제로 처리 할 수있는 방법입니다 수신기가 내장되어 있거나 맞춤 수신기라고 부르는 것 네 물론이 버튼이 필요 없습니다

따라서이 버튼을 제거하려면, 여기에서이 단추를 제거 할 수도 있습니다 네,이 버튼을 제거 할 수 있습니다 그리고 지금은이 방법조차 필요하지 않습니다 됐어 큰

그래서 그것은 방송 수신기의 작은 데모였습니다 귀하의 GitBook에 실린 실습을 시도하십시오 고맙습니다 [음악 재생]

Broadcast Receiver – Part 1, An Introduction

안녕 얘들 아 여기 Codetutor 그리고 내 이름은 Anil Deshpande입니다 이 동영상으로 방송 수신기 인 Android 구성 요소의 새로운 개념을 시작하십시오

전에 방송 수신기 란 무엇이며 어떻게 사용 되는가? 왜 방송 수신기가 필요한지 이해해주십시오 일반적으로 안드로이드 운영 체제, 당신은 다른 유형의 많은 발생합니다 발생중인 이벤트 이러한 이벤트는 배터리 부족, Wi-Fi 가용성, 수신 전화, 수신 SMS, 연결된 Bluetooth 장치, 충전기 연결됨 또는 그 이상의 연결이 끊어졌습니다 아마 당신은 시나리오를 만날 것입니다 여기서 어떤 이벤트에 응답하고 싶습니까? 체계

예를 들어 배터리 부족 이벤트가 발생하면 백엔드 데이터 폴링 메커니즘을 사용하여 (에서) 응용 프로그램을 불필요하게 배터리를 더 많이 소모시킵니다 당신은 기본적으로 이러한 사건을 "경청하십시오" 그리고 그 때문에 당신은 "청취자"가 필요할 것입니다 이 "청취자"는 이러한 특정 이벤트를 청취하기 위해 등록 된 경우에만 청취하십시오 만약 내가 청취자가 기술적 인 용어로 표현하려고 시도하지만 방송은 아니다

수신기와이 특정 방송 수신기를 등록하는 방법은 매니페스트 파일 또는 코드를 통해 그리고 우리가 이야기하고있는 사건들 여기는 의도에 불과합니다 이런 종류의 사건이 발생할 때마다 기본적으로 인 텐트가 트리거되고, 우리는 "인 텐트가 방송 됨"이라는 용어를 사용하고, 브로드 캐스트 리시버가 매니페스트 파일 또는 코드를 통해 수신되면 수신 대기 이러한 이벤트 방송 및 해당 방송 수신기가 올바르게 선언 된 경우 매니페스트 파일 또는 코드에서이 브로드 캐스트 인 텐트에 응답합니다 나는 이것을 구현할 코드를 통해 이것을 증명할 것이다 브로드 캐스트 리시버를 매니페스트 파일에 선언 한 다음 이 특정 방송 수신기는 들어오는 SMS 그것이 우리가 될 것에 대한 전반적인 생각입니다

이 특별한 데모에서 시범을 보입니다 그래서 내가 가지고있는 응용 프로그램을 열어 보겠습니다 이미 생성되었습니다 당신은 여기에 활동이 있음을 볼 수 있습니다 그리고이 활동 레이아웃 꽤 간단합니다

여기에 보여줄 중요한 것은 없습니다 그것은 텍스트 뷰를 가지고있다 문자 메시지 "Brodcast Receiver app started" 이제 내가해야 할 일은 내가 할 일이다 클래스를 만들고 MyBroadcastReceiver라고 부르면이 클래스는 BroadcastReceiver 클래스를 확장합니다

일단 방송 수신기를 확장하면 그 중 하나를 오버라이드 할 수 밖에 없다 on 수신 따라서이 메서드는 브로드 캐스트 수신기가 트리거 될 때마다 실행됩니다 그리고 간단히하기 위해 여기에 메시지를 토스트합니다 그게 전부입니다

우리는 방송 수신기의 구현을 완료했습니다 그만큼 다음 부분은 이것을 등록해야합니다 그래서 매니페스트 파일에서 다른 태그, <receiver> 그리고 MyBroadcastReceiver를 확인해야합니다 SMS를받을 수있는 적절한 권한이 있으므로 여기에 RECEIVE_SMS 및 READ_ SMS라는 두 가지 사용 권한을 사용했는지 확인하십시오 READ_ SMS 나는 SMS의 내용을 읽지 않을 것이기 때문에 필요하지 않습니다

난 그냥 받은 SMS에 응답 할 수 있기를 원합니다 그렇다면 나는 또한 의도 필터 그것은 내가 암시 적 의도 개념을 트리거하는 데 사용해야합니다 이 특정 구성 요소 따라서 의도 필터와 액션은 액션 값의 이름을 지정합니다

내가 줄 필요가있는 것은 SMS_RECEIVED입니다 그리고 그게 다야 내 브로드 캐스트를 등록했습니다 수신자가 수신 한 모든 SMS에 응답 할 수있는 적절한 수신기 게다가 이제 코드를 실행 해 보겠습니다

SMS를 보낼 수 있도록 여기 컨트롤러, 확장 컨트롤러 및 전화 탭을 통해 SMS를 보낼 수 있습니다 그래서 내 브로드 캐스트 리시버 애플리케이션이 시작되어 SMS를 보냈습니다 토스트 메시지 "브로드 캐스트 리시버 트리거 됨"이 표시되는 것을 볼 수 있습니다 "브로드 캐스트 수신기가 트리거 됨" 방송 수신기를 사용하는 또 다른 이점은 방송 수신자가 선언 된 앱을 계속 실행하지 않아도됩니다

그게 무슨 뜻인지 – 나는이 특정 응용 프로그램을 닫고 계속 보낼 수 있습니다 그것과 나의 방송 수신은 여전히 ​​트리거되지만 문제는 관련되어 있습니다 이 특별한 메커니즘 읽고 싶은지에 관계없이 SMS 또는 들어오는 SMS에 응답 내 방송 수신기는 항상 트리거 됨 이것에 대한 해결책은 매니 페스트 파일 I에서 선언하는 것이 아닙니다

소스 코드를 통해 등록해야합니다 이것은 내가 가고있는 무엇인가이다 다음 비디오에서 논의하기 위해 계속 조정했다 채널을 구독하는 것을 잊지 마세요 공유하고 의견을 말하십시오

의견이있는 비디오 돌보다

Broadcast Receiver – Part 2, Dynamic Registration of Broadcast Receiver

안녕 얘들 아 여기 Codetutor 그리고 내 이름은 Anil Deshpande입니다 이전 비디오에서 우리는 브로드 캐스트 수신자를 생성하고이를 매니페스트 파일에 선언하여 청취 할 수있는 방법을 보았습니다

들어오는 SMS 매니페스트 파일에서 브로드 캐스트 리시버 선언하기 대부분의 상황에서 작동하지만 특정 시나리오에서는 이것은 적절한 해결책이 아닙니다 예를 들어 앱이 있고 앱은 백업에서 전송되는 한 번만 암호를 읽어야합니다 한 번 암호, 그것을받을 때 내 방송 수신기가 그것을 읽고 들어오는 일회용 암호를 인식 할 수 있습니다 하지만 내 앱이 아닌 경우 포 그라운드에서 내 앱이받을 것임에도 불구하고 이 특정 OTP는 매니페스트 파일에 선언되어 있기 때문에 잘못된

매니페스트 파일에 선언하는 대신 방송은 코드에 관한 것입니다 그래서 이것을 데모에서 봅시다 내가 무엇을 먼저 할 것인가? 매니페스트 파일에서 내가 여기 선언 한 내용이 무엇이든간에 그것 그래서 나는 이것이 단지 내가 이것을 할 필요는 없다는 것을 논평 할 것이다 이 특정 방송 수신기를 코드를 통해 등록합니다

그것을 위해 나를 보내 줘 다시 활동으로 나는 이것이 필요한 방송 수신기의 예를 가지고있다 초기화 된 브로드 캐스트 리시버는 새로운 MyBroadcastReceiver와 같습니다 브로드 캐스트 수신기가 nitialized이며 지금은 그것을 등록해야합니다

지금 나는 어디에서해야합니까? 이거 등록 해? onStart ()는 활동을 시작하고 onstop ()이 시작할 때 트리거됩니다 응용 프로그램이 백그라운드로 돌아갈 때 트리거됩니다 만약 등록은 onStart () 메소드에서 일어날 필요가있다 활동 라이프 사이클 및 등록 취소가 onPause / onStop 활동의 라이프 사이클 방법 그래서 그렇게 하죠

registerReceiver broadcastreceiver 두 번째 매개 변수는 의도 필터입니다 그럼 내가 만들어 보자 인 텐트 필터 인 텐트 필터에 의해 생성 된 것은 새로운 의도와 같습니다 필터와 내가 필요한 두 가지 값은 액션입니다

태그를 사용하여 매니페스트 파일에 등록했습니다 그리고 그 특정한 의도를 여기에서 지나치게하겠습니다 그리고 나는 이것을 등록에서 제외 할 것입니다 onStop 메소드에 있습니다 따라서 초기화 된 브로드 캐스트 수신기의 등록을 취소하고 이제이 특정 코드를 실행하도록하겠습니다

따라서 내 앱은 시작과 함께 시작되었습니다 방송에 등록되어 있습니다 지금 SMS를 보내면 수신 SMS를 인식합니다 토스트 메시지가 거기에 있다는 것을 알 수 있습니다 내가 이것을 닫으면 내가 메시지를 보내면 그 특별한 것을 보지 못할 것이다

토스트 메시지 그래서 이것은 동적으로 등록하고 이해할 수있는 방법입니다 귀하의 요구 사항에 더 잘 맞는 방송 수신기 그것은 우리를 끝으로 인도한다 이 특정 비디오의 잊지 마세요 의견 공유 비디오 및 채널을 구독하십시오

잘가, 안녕

Broadcast Receiver – Part 3, Listening to custom intent broadcasts

안녕 얘들 아 CodeTutor andmy 이름은 Anil Deshpande입니다 이전 비디오에서는 어떻게하면 여러 인 텐트를들을 수있는 broadcastreceiver

이러한 의도 브로드 캐스트는 기본적으로 시스템에서 생성 된 의도 된 브로드 캐스트입니다 내 의도의 방송을 만들고 방송 수신기를 디자인하고 싶다면 어떻게해야합니까? 내 맞춤 생성 의도 방송을 청취합니다 이 비디오에서 이 특정 시나리오를 구현하는 방법부터 시작하겠습니다 내 브로드 캐스트 리시버가 생성 된 것을 볼 수 있습니다 브로드 캐스트 수신기가 MyBroadcastReceiver이고 내 자신을 만들었습니다

인 텐트 필터를 사용하여 해당 브로드 캐스트 리시버를 매니페스트 파일에 등록합니다 인 텐트 필터에서 액션과 카테고리를 사용하고있는 것을 볼 수 있습니다 특정 동작 값을 생성하는 동안 고유 한 문자열을 제공 할 수 있습니다 이것은 당신 자신의 커스텀 스트링입니다 그리고 너는 DEFAULT 카테고리를 부여해야합니다

이제 활동으로 돌아 가면 그 특정 버튼을 클릭하면 의도와 그 특정 의도에 대한 나는 카테고리를 설정하고 액션 값 그리고 관찰하면 카테고리 값과 액션 값 브로드 캐스트 리시버를 등록하는 동안 사용한 것과 정확히 똑같습니다 매니페스트 파일에 다음 메소드는 sendBroadcast ()이며 인 텐트를 그 특별한 방법에 대한 논쟁 인 텐트 브로드 캐스트가 트리거됩니다 그래서 지금 이 특정 버튼을 클릭하면 토스트 메시지가 트리거됩니다

방송 수신의 이러한 특정 트리거링은 다른 응용 프로그램 이를 위해 나는 다른 응용 프로그램을 만들었습니다 특정 적용 나는 그것이 활동을 포함하고 있다는 것을 제외하고는 아무것도 없다 활동에는 버튼이 포함되어 있으며 해당 버튼을 클릭하면 의도를 유발합니다 코드가 동일하다면, 정확히 동일합니다

이전 신청서에 사용되었습니다 이 특정 응용 프로그램은 또한 다른 앱에 등록 된 브로드 캐스트 리시버를 트리거하십시오 우리에게 보여줘 그 행동 이것은 다른 앱이고 "방송 보내기"를 클릭하면됩니다 기본적으로 다른 앱에있는 브로드 캐스트 수신자를 트리거합니다

그래서 이것을 통해 당신은 분명히 방송에 관계없이 그것을 만들 수 있습니다 리시버가 존재하면 카테고리와 액션 값을 올바르게 전달하면 브로드 캐스트 리시버가 항상 트리거됩니다 그러나이 문제는 시나리오는 트리거를 실행할 작업 및 카테고리 값을 알고있는 모든 앱입니다 해당 브로드 캐스트 리시버가 트리거 할 수 있습니다 이 일이 일어나길 원치 않으면 어떡하지? 브로드 캐스트 리시버를 보호하고 싶습니다

모든 XYZ 앱은 특정 방송 수신기를 트리거 할 필요가 없습니다 그에 대한 내 보낸 것으로 호출 된 속성을 사용할 수 있습니다 너를 등록하면 매니 페스트 파일의 브로드 캐스트 리시버가 내 보낸 파일과 함께 선언합니다 속성 세트는 false와 같습니다 이렇게하면 브로드 캐스트 리시버가 앱 외부에서 들어오는 방송 의도에 반응합니다

이것이 하나의 측면이다 귀하의 방송 수신기 보안의 그러나 반대 시나리오도있을 수 있습니다 반대로 최악의 시나리오는 기본적으로 어떤 의도의 방송도 원하지 않는다는 것입니다 앱 밖에서 발생하는 것은 앱 하나에 브로드 캐스트 리시버가 있다고 가정하는 것입니다

또한 앱 XYZ에는 동일한 작업을 수행하는 브로드 캐스트 수신기가 있습니다 그리고 catagory values와 만약 내가 브로드 캐스트 인텐시티가 발생한다면 모든 브로드 캐스트 수신기가 트리거됩니다 당신은 그런 일이 일어나기를 원하지 않습니다 너는 그 의도를 원해 방송은 앱 1로만 제한됩니다

그 때문에 당신은 LocalBroadcastManager가 브로드 캐스트를 보냅니다 인 텐트 방송이 특정 앱에만 국한되며 앱 외부로 전파되지 않습니다 하나 그래서 우리가 데모에서 이것을 보도록하겠습니다 나는 첫 부분을 보게 될 것입니다

내 보낸 속성은 false와 같아서 앱을 다시 실행합니다 이제 내가 할 때 방송을 보내면 해당 특정 방송 수신기가 트리거되지 않습니다 응용 프로그램에서 가져온 값이 false로 설정 되었기 때문에 그러나 응용 프로그램이 트리거됩니다 따라서이 특정 버튼을 클릭하면됩니다

방송 수신기가 트리거되고있는 것을 관찰하고 다른 응용 프로그램과 방송을 보내면 방송을 볼 수 있습니다 왜냐하면 이 값의 false는 false로 설정됩니다 이제 내가 사실로 만들고 내가 갈거야 다른 응용 프로그램에 LocalBroadcastManager를 만듭니다 나를 초기화 시키겠습니다

그것은 localBroadcast 액티비티의 onCreate 메소드에 있습니다 getInstance는 getApplicationContext 문맥을 전달한 다음 이것을 사용한다 localBroadcastManager를 사용하여 브로드 캐스트를 보냅니다 그리고이 코드를 실행시켜 보겠습니다 이 특정 버튼을 클릭하면 브로드 캐스트가 트리거되지 않습니다

내 보낸 값이 true로 설정됩니다 무슨 일이 일어나고 있는지 방송은이 특정 응용 프로그램을 넘어서지 않습니다 LocalBRTester (앱 이름) 왜 이럴거야? 왜냐하면 만약 당신이 백퍼센트 귀하가 구현 한 브로드 캐스트 리시버가 귀하의 자신의 응용 목적과 그 특정 방송의 가능성은 없습니다 리시버가 앱 외부 어디서나 실행되거나 원하는 경우 불필요하게 앱 컨텍스트 외부에서 의도를 유발하지 않도록 항상 LocalBroadcastManager를 사용할 수 있습니다 그래서 우리가 토론 한 내용 지금까지이 동영상을 포함하여 이전 동영상에서 일반 방송으로

Android는 또 다른 중요한 유형의 브로드 캐스트를 제공합니다 주문 방송 (Ordered Broadcast)이라고합니다 주문한 방송을 듣기 위해 계속 지켜봐주십시오 (다음 비디오에서) 그 이 특정 비디오가 끝날 때까지 우리를 데려오고, 잊지 마세요 의견 공유를 좋아하십시오

비디오를 구독하고 채널에 가입하십시오

Broadcast Receivers – Part 4, Ordered Broadcast Receivers

안녕 얘들 아 CodeTutor 여기 내 이름은 Anil Deshpande입니다 이전 이벤트가있을 때마다 본 비디오 발생, 당신은 그 특정 만들 수 있습니다 방송 수신기에 응답합니다

브로드 캐스트 리시버를 등록 할 수 있습니다 매니페스트 파일 또는 암호 그러나 이것이 항상 시나리오가 하나만있는 시나리오 응답 할 특정 브로드 캐스트 수신기 이벤트에 너는 더 많은 것을 가지고 있을지도 모른다 하나의 방송 수신자보다 모든 방송 수신기에서 이벤트가 발생합니다

듣기 위해 등록되었을 수도 있습니다 같은 사건 그래서이 세 명 모두 방송 수신기가 응답합니다 근데 뭐 주문을 관리하려면 이들 특정 방송 수신기 방아쇠를 당겼거나 메커니즘이있다 내가 통제 할 수있는 첫 번째 특정 브로드 캐스트 수신자가 트리거되고 첫 방송 수신기까지 그 처리를 완료한다 나는 그것을 원하지 않는다

두 번째 방송을보기 위해 만 첫 번째 완료 후 두 번째 가져 오기 트리거 된 다음 두 번째 완료 후 세 번째도 트리거됩니다 나는 또한하고 싶습니다 제 1 방송 수신기에서 데이터를 처리한다 그런 다음 두 번째 브로드 캐스트로 전달했습니다 수신기에서 처리 한 후 두 번째로 자세히 처리하고 싶습니다

제 3 방송 수신기 이것을하기 위해 우리는 Ordered라고 불리는 것을 사용합니다 방송 수신기 그래서이 비디오에서 우리는 이것을 달성하는 방법에 대한 데모를 볼 수 있습니다 내가 원하는 코드를 보여주기 전에 이것이 어떻게 달성되고 있는지 이해한다

데모 나는 두 가지를 구현할 것이다 방송 수신기 및 그 때 나는하고자했다 인 텐트를 트리거하고이 인 텐트가 이 두 개의 방송 수신기를 방아쇠를 당겼다 처음에는 그것들은 매니페스트에 등록되어있다 행동으로 파일하다 그리고 하나이며 같은

그리고 이러한 특정 방송 수신기 방아쇠를 당겼다 기본적으로 어떤 것을 기록 할 것인가? 브로드 캐스트 수신기가 처음으로 트리거 됨 이동 경로 형식 빵 부스러기 형식은 일반적으로 파일입니다 일반적으로 보는 네비게이션 시스템 메뉴 기반 UI에서 우리는 동일한 이동 경로 형식을 사용하여 특정 순서로 브로드 캐스트 수신기가 트리거됩니다 여기에 코드를 보여 드리겠습니다

나는 가지고있다 관찰 할 수있는 방송 수신기 방송 수신기 둘 다에서 방송 수신기 2, 로직 onReceive 메서드는 기본적으로 빵 부스러기를 만들고 그것에 기록하기 LogCat 나는에 대한 링크를 주었다 설명 섹션의 소스 코드 아래 동영상에서 다운로드 할 수 있습니다 코드를 작성하고 로직을 검토하십시오

그럼 내가 활동이 있고, 특히 나는 단추가 있고 나는 해당 버튼을 클릭하십시오 기본적으로 방송을 보내면 내가 등록한 목록 파일을 관찰하다 동일한 브로드 캐스트 수신기들 동작 및 범주 값 그럼 내가 이걸 실행하게 해줘 버튼을 클릭하면 방송 수신기 하나와 방송 수신기 2 개는 별도로 실행됩니다

그리고 네가 간다면 다시 매니페스트 파일로 돌아가서 주문을 변경하고 다시 실행하십시오 어떤면에서는 단지 다음 순서로 방송 수신기는 매니페스트 파일에 영향을 줄 수있는 그들이 실제로 얻는 순서 실행 이제 클릭하면 볼 수 있습니다 방송 수신기가 두 대 먼저 시작한 다음 시작했다 나는 인 텐트 필터의 우선 순위 값은 항상 정수이고 방법은 우선 순위가 높은 작품은 높은 작품 이 경우 방송에서의 우선 순위 수신기 하나가 우선 순위가 높습니다

일찍 처형 될테니까 다시 실행하십시오 방송 수신기 하나가 더 높다 우선 순위 그래서 그것이 expected 점점 명령을 계속 지키겠다 그것들은 명단에 선언되어있다

파일은 같지만 우선 순위는 변경하십시오 당신 이제는 방송을 볼 수 있습니다 수신기 2가 먼저 실행되고 다음 방송 수신기 하나 조차 나는 우선 순위를 바꿨지만 매니페스트의 브로드 캐스트 리시버 파일을 열면 순서가 변경됩니다 방송 수신기는 트리거 됨

그들은 유발되지만, 그들은 얻는다 독립적으로 실행됩니다 그러나 이것은 아니다 충분한 나는 기본적으로 통제하고 싶다

하나로부터 인 텐트 전파 방송 수신기 두 번째 브로드 캐스트 리시버로 전송합니다 에 내가해야 할 일은 다음과 같다 대신 버튼의 onClick 메서드 sendBroadcast라는 메소드를 사용하여, 다른 방법으로 sendOrderedBroadcast 너는 사용해야 해 그 특별한 방법과 매개 변수 그것이 취하는 것은 의도와 문자열입니다

허가 우리는 아무 것도 필요로하지 않기 때문에 이 권한을 특수화했다 특별한 경우 난 그냥 null을 전달할 수 있습니다 값 그래서이 강령을 실행할 수 있습니다 그럼 내가 시켜줘

이 특정 버튼을 클릭하십시오 첫 번째 방송 수신기에서 그것을 보아라 우리는 시작으로 출력을 얻고있다 -> 방송 수신기 하나 자동으로 컨트롤이 방송 수신기 2, 그리고 방송 수신기에서 우리는 이전의 breadcrumb 값은 시작 -> BroadcastReceiver1 그리고 나서 나는있다 태그를 추가합니다 그래서 그것은 방송 수신기 2입니다

그래서 우리가 달성 할 수 있었던 것 첫 번째 브로드 캐스트 수신기가 트리거되고, BroadcastReceiver1의 우선 순위 더 높고 처리가 끝난 후 방송 수신기의 데이터 하나는 자동으로 두 번째 방송 수신기가 트리거됩니다 때까지 BroadcastReceiver1 2 개의 방송 수신기를 완성한다 처형되지 않습니다 그리고 전송할 수 있습니다 방송 수신기 1에서 처리 된 데이터 BroadcastReceiver2

당신이 원한다면 내 말은 완전한 루프백이야 브로드 캐스트 리시버를 트리거 한 후 이 특정 버튼을 클릭하면, 브로드 캐스트 리시버로 가야한다 하나 그리고 나서 방송 수신기 2와 마지막으로 주요 활동으로 돌아온다 또 다른 방법이 있습니다 이것은 sentOrderedBroadcast의 오버로드 된 메소드

당신은 sentOrderedBroadcast, 나는 의도, 권한이 null이고 현재 익명의 내부 클래스를 만드는 방송 수신기 이게 뭐야? 방송 수신기는 그렇게 할 것이다 두 번째에서 빵 부스러기를 받다 방송 수신기, 그리고 마지막으로 첨부 다른 태그 다른 태그 대 / 소문자는 MainActivity입니다 그리고 마지막으로 그 특정 빵 부스러기를 LogCat

그럼 내가 이걸 실행하게 해줘 이제 클릭 할 때 이 특정 버튼을 관찰 할 것입니다 방송 수신기에서 시작 -> 방송 수신기 하나를 누른 다음 방송 수신자 2에 propepagtes 결국 방송 수신기 2 후, 그것은 MainActivity에옵니다 그래서 전달하는 방송 수신기 여기 sendOrderBroadcast에 대한 인수로, 기본적으로 최종 콜백 브로드 캐스트 최종 의도를 얻는다

그게 가져온다 우리는이 특별한 비디오의 끝까지 댓글 공유를 좋아하는 것을 잊지 마세요 동영상을보고 채널을 구독하십시오 갖다 걱정하다

Broadcast Receiver – Part 5, The Finer Nuances

안녕하세요 여러분 codeCodeTutor 여기 내 이름은 Anil Deshpande입니다 이게 마지막이야

방송 개념에 관한 비디오 내가 이야기 할 수신기들 당신이해야 할 뉘앙스의 일부 브로드 캐스트 리시버를 사용하는 동안 귀하의 신청서에 아주 내가 얘기하고 싶은 첫 번째 요점은 메인 쓰레드 나 UI 스레드입니다 카운터 일 수 있습니다 사람들의 대부분을위한 intinant 브로드 캐스트 수신기에는 아무 것도 없습니다 UI 그래서 당신은 생각할 수 있습니다

방송 수신기가 실행 중입니다 다른 작업자 스레드에서는 케이스 네가 잘못하면 그렇게 할 수있어 응답하지 않는 응용 프로그램으로 연결됩니다 이것을 이해하고 집으로 운전하는 데 오류가 있습니다

이 특별한 요점은 내가 빨리 얻을 것이다 데모로 나는 다음 중 하나를 사용하고있다 내가 사용했던 이전 프로젝트 이전 동영상 보시다시피, 저는 여기에 활동을하고 이것을 클릭하십시오 특정 버튼, 나는 의지 그 의도가 여기서 방송됩니다

스레드 ID를 보여줍니다 내가하고있는 것 활동을 시작할 때 나는 시작이다 스레드 ID를 트리거하고 내 방송 수신기가 시작됩니다 다시 한번 그 스레드 ID를 토스트합니다 둘 다 그들 중 동일한 스레드에서 실행 중 이 경우 주 스레드입니다

그 스레드 ID를 하나 가져와야합니다 그리고 같은 두 가지 주요 활동 및 방송 수신기에서 나는 할 것이다 앱을 실행하면 볼 수 있습니다 주 활동 스레드 ID는 1이고, 언제 나는이 특정 버튼을 클릭한다

toast는 스레드 ID를 다음과 같이 다시 표시합니다 브로드 캐스트 리시버가 실행되는 하나 주요 실 그래서 Android 브로드 캐스트 리시버 더 걸리는 일은해서는 안된다 10 초 이상 그리고 다음 중요한 포인트 방송 수신자가 onReceive () 실행, 그것은 고려됩니다 끝내라

이것은 심각하다 당신이 사용하는 방식에 암시 방송 수신기 일반적으로 브로드 캐스트 리시버 구현 및 오버라이드 onReceive () 메소드 취하다 당신이 처형을 시작했다고 onReceive 메소드와 어딘가에 중에서 기본적으로 원격지에 연결하려고합니다 서비스를 바인딩하고 싶은가? 서비스

그러나 시간 서비스가 돌아올 때까지 뒤로 방송 수신자 실행 완료 및 onRecieve 메소드가 완료됩니다 그래서 그것이 이유입니다 방송 수신기는 비동기 호출과 방송 수신기로부터의 서비스 그러나 당신은에서 서비스를 시작할 수 있습니다 방송 수신기 방송 수신기가 해킹되기 쉽기 때문에 항상 그들을 확보해야합니다

두 가지가있다 그 (것)들을 확보하는 간단한 방법 하나는 세트는 거짓에 공물을 내 보냈다 다른 방법은 로컬 브로드 캐스트를 사용하는 것입니다 인 텐트 전파를 제한하는 관리자 앱 넘어 이 두 가지 간단한 두 가지 내가 설명한 방법론 이 이전 동영상은 토론을위한 커튼 폐쇄 CodeTutor의 방송 수신기는 지금

다음 주제는 내가 될 것입니다 토론은 콘텐츠 제공 업체입니다 그 이 특정의 끝으로 우리를 데려다 준다 동영상을 잊지 마세요 의견 공유를 좋아합니다 비디오 및 채널 구독 잘가, 안녕