Android发送本地广播

来源:互联网 发布:算法统宗中记载 编辑:程序博客网 时间:2024/05/23 00:43

非常简单,点击按钮,弹出Toast

xml内容

<android.support.constraint.ConstraintLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.pistol.broadcasttest.MainActivity">    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:onClick="send"        android:text="Hello World!"        app:layout_constraintBottom_toBottomOf="parent"        app:layout_constraintLeft_toLeftOf="parent"        app:layout_constraintRight_toRightOf="parent"        app:layout_constraintTop_toTopOf="parent"/></android.support.constraint.ConstraintLayout>

MainActivity

public class MainActivity extends AppCompatActivity {    //本地广播数据类型实例。    private LocalBroadcastManager localBroadcastManager;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //获取本地广播实例。        localBroadcastManager = LocalBroadcastManager.getInstance(this);        //绑定广播接收        initReceiver();    }    private void initReceiver() {        IntentFilter intentFilter = new IntentFilter();        intentFilter.addAction("test");        //创建广播接收器实例,并注册。将其接收器与action标签进行绑定。        localBroadcastManager.registerReceiver(new LocalReceiver(), intentFilter);    }    //发送本地广播    public void send(View view) {        Intent intent = new Intent();        intent.setAction("test");        localBroadcastManager.sendBroadcast(intent);    }    class LocalReceiver extends BroadcastReceiver {        @Override        public void onReceive(Context context, Intent intent) {            Toast.makeText(getApplicationContext(), "接收到广播", Toast.LENGTH_SHORT).show();        }    }}
内容不多,注意action对应上就行,一个页面发送一个页面接收,拆开也简单。


发送广播页面

获取本地广播实例:

LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(this);
发送本地广播:

//发送本地广播public void send(View view) {    Intent intent = new Intent();    intent.setAction("test");    localBroadcastManager.sendBroadcast(intent);}

接收广播页面

绑定接收广播:

private void initReceiver() {    LocalBroadcastManager   localBroadcastManager = LocalBroadcastManager.getInstance(this);    IntentFilter intentFilter = new IntentFilter();    intentFilter.addAction("test");    //创建广播接收器实例,并注册。将其接收器与action标签进行绑定。    localBroadcastManager.registerReceiver(new LocalReceiver(), intentFilter);}
广播接收:

class LocalReceiver extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {        Toast.makeText(getApplicationContext(), "接收到广播", Toast.LENGTH_SHORT).show();    }}


0 0
原创粉丝点击