localbroadcastmanager 예제

Off
Non classé

활동에 메시지를 표시할 수 있는 보류 중인 사용 정보 표시줄이 있는 알림 상태 표시줄 메시지를 사용합니다. 이 기능은 사용자가 서비스와 활동 간의 통신에 참여해야 할 때 매우 유용합니다. 예를 들어 새 전자 메일이 도착하면 일반적으로 상태 표시줄 메시지를 통해 새 전자 메일을 확인하는 백그라운드 서비스에서 들어오는 전자 메일을 검색하고 사용자에게 전자 메일 활동을 열도록 경고하는 상태 표시줄 메시지를 게시합니다. 그러나 이는 사용자 상호 작용 없이 서비스-활동 통신이 조용히 수행되어야 하는 최적의 솔루션보다 적을 수 있습니다. 설명서에서 알 수 있듯이 « 백그라운드 서비스에서 응답이 필요한 이벤트에 대해 사용자에게 경고해야 하는 모든 경우에 상태 표시줄 알림을 사용해야 합니다. 백그라운드 서비스는 사용자 상호 작용을 받기 위해 자체적으로 활동을 시작해서는 안 됩니다. » 로컬BroadcastManager를 구현하는 활동 및 서비스의 예는 개발자 문서에서 찾을 수 있습니다. 나는 개인적으로 매우 유용 발견했다. 이 예제에는 두 개의 Android 앱 앱 앱 1과 앱 2가 포함되어 있습니다. 그들은 다른 안드로이드 프로젝트에서 생성되고, 같은 안드로이드 에뮬레이터에서 실행됩니다. 예를 들어 응용 프로그램은 부팅 완료 또는 배터리 부족과 같은 다양한 시스템 이벤트에 등록할 수 있으며, Android 시스템은 특정 이벤트가 발생할 때 브로드캐스트를 전송합니다. 모든 응용 프로그램은 자체 사용자 지정 브로드캐스트를 만들 수도 있습니다. 적절한 라이브러리를 사용하여 android.support.v4.content.LocalBroadcastManager 클래스를 사용하여 로컬 브로드캐스트 메시지를 보낼 수 있습니다. 다음은 장치의 속도가 일부 제한을 초과하는 것으로 결정되었음을 알리는 의도를 생성하는 속도 및 위치 백그라운드 서비스의 몇 가지 예제 메서드입니다.

서비스는 LocalBroadcastManager를 사용하여 로컬 브로드캐스트 메시지를 보내 이 과도한 속도를 활동에 알립니다. 의도 개체를 만들고 해당 Intent 개체를 사용하여 sendBroadcast()를 호출하는 것만큼 쉽습니다. 편집 : 링크는 그 이후 사이트에서 제거되었지만 데이터는 다음과 https://github.com/carrot-garden/android_maven-android-plugin-samples/blob/master/support4demos/src/com/example/android/supportv4/content/LocalServiceBroadcaster.java이 예제를 실행하려면 두 개의 Android 프로젝트를 만들어야합니다. 하나의 프로젝트에는 하나의 안드로이드 앱이 포함되어 있습니다. 예를 들어, 수신 응용 프로그램은 아래와 같이 수신기에 선언 된 SEND_SMS 권한이 있습니다 : 메인 활동 `패키지 com.javacodegeeks.android.androidserviceexample; 가져 오기 android.content.BroadcastReceiver; android.content.Context 가져오기; android.content.IntentFilter 가져오기; 가져 오기 android.os.Bundle; android.app.Activity 가져오기; android.content.Intent 가져오기; 가져오기 android.support.v4.content.LocalBroadcastManager; 가져 오기 android.util.Log; android.view.Menu 가져오기; 가져오기 android.view.View; 가져 오기 android.widget.Toast; 위의 코드를 사용하면 R.id.button_send 버튼을 클릭할 때마다 의도가 브로드캐스트되고 receiverActivity의 mMessageReceiver에서 수신됩니다. 이제 응용 프로그램의 활동이나 서비스에서 로컬 브로드캐스트가 전송될 때마다 onNotice 의 수신이 🙂 호출됩니다. 수명 주기 개체가 소멸되면 관찰자가 자동으로 제거되며 게시-구독 디자인 패턴과 유사하게 작동하며 비동기 프로세스 간 통신에 사용됩니다. android manifest.xml 응용 프로그램 태그 아래 서비스 이름을 추가 /* @override 공용 void onStart (의도 의도, int startId) { // 시간이 오래 걸리는 긴 작업을 위해 여기에 새 스레드를 시작할 수 있습니다… Toast.makeText(이, « 서비스 시작 », Toast.LENGTH_LONG).show(); 활동 측(또는 로컬 응용 프로그램 구성 요소가 로컬 메시지를 수신할 수도 있음)에서 관심 있는 로컬 브로드캐스트 메시지에 등록합니다. 내 활동의 onCreate() 메서드에서 브로드캐스트에 등록하기로 결정했습니다.

선호 되는 대체 로 LocalBroadcastManager를 사용 하 여 활동 (또는 해당 문제에 대 한 모든 응용 프로그램 구성 요소 사이) 서비스에서 로컬 브로드 캐스트 메시지를 보낼 수 있습니다.

Comments are closed.