package cn.netkiller.broadcast; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private IntentFilter intentFilter; private TextView textView; private MyBroadcastReceiver myBroadcastReceiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); intentFilter = new IntentFilter(); intentFilter.addAction("cn.netkiller.broadcast.MESSAGE"); myBroadcastReceiver = new MyBroadcastReceiver(); //註冊廣播接收器 registerReceiver(myBroadcastReceiver, intentFilter); textView = (TextView) findViewById(R.id.textView); Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //把要發送的廣播值傳入Intent對象 Intent intent = new Intent("cn.netkiller.broadcast.MESSAGE"); intent.putExtra("msg", "Helloworld"); //調用Context的 sendBroadcast()方法發送廣播 sendBroadcast(intent); textView.setText("Send"); } }); } @Override protected void onDestroy() { super.onDestroy(); //註銷動態的廣播接收器 unregisterReceiver(myBroadcastReceiver); } //自定義內部類,繼承 BroadcastReceiver public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String data = intent.getStringExtra("msg"); Toast.makeText(context, data, Toast.LENGTH_SHORT).show(); } } }