zoukankan      html  css  js  c++  java
  • LocalBroadcastManager 使用

    如果只是在应用程序进程内发送和接收广播,可以考虑使用LocalBroadcastManager而不是更通用的Context.sendBroadCaset()方法。

    使用LocalBroadcastManager更高效,因为不需要跨进程管理草错,也不要考虑广播涉及的安全问题。

    demo:

    接收activity

     1 public class MainActivity extends AppCompatActivity {
     2 
     3     public static final String FILETER = "MainActivity-BRODER";
     4     @butterknife.InjectView(R.id.button)
     5     Button button;
     6     private BroadcastReceiver broadcastReceiver;
     7     private LocalBroadcastManager localBroadcastManager;
     8 
     9     @Override
    10     protected void onCreate(Bundle savedInstanceState) {
    11         super.onCreate(savedInstanceState);
    12         setContentView(R.layout.activity_main);
    13         butterknife.ButterKnife.inject(this);
    14         button.setOnClickListener(new View.OnClickListener() {
    15             @Override
    16             public void onClick(View view) {
    17                 startActivity(new Intent(MainActivity.this,SendActivity.class));
    18             }
    19         });
    20     }
    21 
    22     @Override
    23     protected void onResume() {
    24         super.onResume();
    25         localBroadcastManager = LocalBroadcastManager.getInstance(this);
    26         IntentFilter intentFilter = new IntentFilter();
    27         intentFilter.addAction(FILETER);
    28         broadcastReceiver = new BroadcastReceiver() {
    29 
    30             @Override
    31             public void onReceive(Context context, Intent intent) {
    32                 String name = intent.getStringExtra("name");
    33                 Log.e("MainActivity", "MainActivity ========  " + name);
    34             }
    35         };
    36         localBroadcastManager.registerReceiver(broadcastReceiver, intentFilter);
    37     }
    38 
    39     @Override
    40     protected void onDestroy() {
    41         super.onDestroy();
    42         localBroadcastManager.unregisterReceiver(broadcastReceiver);
    43     }
    44 }

    发送 activity

     1 public class SendActivity extends AppCompatActivity {
     2 
     3     @InjectView(R.id.button2)
     4     Button button2;
     5 
     6     @Override
     7     protected void onCreate(Bundle savedInstanceState) {
     8         super.onCreate(savedInstanceState);
     9         setContentView(R.layout.activity_send);
    10         ButterKnife.inject(this);
    11         
    12         button2.setOnClickListener(new View.OnClickListener() {
    13             @Override
    14             public void onClick(View view) {
    15                 LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(SendActivity.this);
    16                 Intent intent = new Intent();
    17                 intent.setAction(MainActivity.FILETER);
    18                 intent.putExtra("name", "我是sendActivity 发送");
    19                 localBroadcastManager.sendBroadcast(intent);
    20             }
    21         });
    22     }
    23 }
  • 相关阅读:
    「学习记录」《数值分析》第三章计算实习题(Python语言)
    Set原理
    字符串流stringReader
    Collection List接口
    io
    Dubbo 服务容错Hystrix
    Duboo 与springboot整合
    读取配置文件
    springboot 端口号
    springboot 多环境选择
  • 原文地址:https://www.cnblogs.com/lihaolihao/p/4702541.html
Copyright © 2011-2022 走看看