最簡單的廣播使用方式;
public class MainActivity extends AppCompatActivity {
private Demo1Recceiver receiver; //定義廣播接收變量
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IntentFilter filter=new IntentFilter("com.example.myapplication");//過濾器,限制只接收myapplication的廣播
// IntentFilter filter=new IntentFilter(); //接收系統廣播的模式;
//filter.addAction(getIntent().ACTION_AIRPLANE_MODE_CHANGED);//各種系統廣播
Demo1Recceiver receiver = new Demo1Recceiver();
registerReceiver(receiver,filter);//註冊的廣播接收器
Button button=findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent("com.example.myapplication");//和註冊廣播接收器時對應;
intent.putExtra("temp","Lin");//通過廣播準備發送的信息
sendBroadcast(intent);//發送廣播
}
});
}
@Override
//釋放註冊的廣播接收器;
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(receiver);
}
}
//廣播接收器類
class Demo1Recceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.e("onReceive:","內部的接收到:"+intent.getStringExtra("temp").toString());//廣播接收到的信息;
}
}