LocalBroadcastManager (로 컬 / 응용 내 방송 관리자)
2909 단어 방송 하 다.
하면, 만약, 만약... BroadcastReceiver 는 아직 잘 모 르 겠 습 니 다. 그럼 이동 하 십시오 (http://blog.csdn.net/plussoft/article/details/12871571)。
BroadcastReceiver 의 디자인 은 전체 적 으로 고려 하여 응용 프로그램 과 시스템, 응용 프로그램 간, 응용 프로그램 내 통신 을 편리 하 게 할 수 있 기 때문에 하나의 응용 프로그램 에 있어 BroadcastReceiver 는 안전성 문제 가 존재 합 니 다.이러한 보안 문 제 는 모두 Local BroadcastManager 를 통 해 해결 할 수 있 으 며, Local BroadcastManager 는 현재 응용 프로그램 에 만 방송 을 한정 할 수 있다.LocalBroadcastManager 보 내 는 방송 은 애플 리 케 이 션 을 떠 나 지 않 고 다른 애플 리 케 이 션 에서 온 방송 도 받 지 않 기 때문에 안심 하 셔 도 됩 니 다. Local BroadcastManager 에서 민감 한 정 보 를 전파 합 니 다.또한 LocalBroadcastManager 는 크로스 프로 세 스 메커니즘 을 사용 할 필요 가 없 기 때문에 상대 적 으로 BroadcastReceiver 는 더 효율 적 이 어야 합 니 다.
Local Broadcast Manager 는 android. support. v4 확장 패키지 의 클래스 입 니 다.
범례
MainActivity
public class MainActivity extends Activity {
Button button1;
MyBroadcastReceiver myBroadcastReceiver;
LocalBroadcastManager lbm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*
* LocalBroadcastManager
* LocalBroadcastManager.getInstance(context)
*
* LocalBroadcastManager
*/
lbm = LocalBroadcastManager.getInstance(this);
myBroadcastReceiver = new MyBroadcastReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("com.plusjun.test.hahaha");
//
lbm.registerReceiver(myBroadcastReceiver, filter);
button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setAction("com.plusjun.test.hahaha");
intent.putExtra("name", "plus");
//
lbm.sendBroadcast(intent);
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
//
lbm.unregisterReceiver(myBroadcastReceiver);
}
}
MyBroadcastReceiver
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String str = intent.getStringExtra("name");
sLog(str);
}
private void sLog(String str) {
Log.i("MyBroadcastReceiver", str);
}
}
화해시키다 BroadcastReceiver 등록 과 방송 전송 차이 가 많 지 않 습 니 다. 호출 대상 이 Activity 에서 바 뀌 었 을 뿐 입 니 다. LocalBroadcastManager。
LocalBroadcastManager 수신 기 는 코드 로 만 등록 (동적 등록) 할 수 있 으 며 존재 하지 않 습 니 다. BroadcastReceiver 의 그런 Android Manifest 등록.
상기 부분 내용 의 전재 또는 참고 출처 는 다음 과 같다.http://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html 감사 드 립 니 다.전재 할 때 출처 를 밝 혀 주 십시오. 판권 은 원작 자의 소유 이 며 동의 없 이 어떠한 상업 용도 에 도 사용 하 는 것 을 엄금한다.웨 이 보:http://weibo.com/theworldsong 메 일 박스:[email protected]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
안 드 로 이 드 자동 방송 효과 없 는 곡선 솔 루 션AndroidManifest.xml MyService BootBroadcastReceiver 코드 에서 보 듯 이 Intent.ACTIONBOOT_COMPLETED 는 boot 가 시 작 된 후에 시스템 이 라디오 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.