一、系统广播
1、动态广播
package com.test;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.widget.Toast;
import androidx.annotation.Nullable;
import com.example.textmethod.R;
public class BCActivity extends Activity {
NETchange neTchange;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.new_main);
neTchange =new NETchange();
IntentFilter intentFilter=new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
registerReceiver(neTchange,intentFilter);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(neTchange);
}
class NETchange extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo networkInfo= connectivityManager.getActiveNetworkInfo();
if (networkInfo!=null&&networkInfo.isAvailable()){
Toast.makeText(BCActivity.this,"网络 is able",Toast.LENGTH_LONG).show();
}else{
Toast.makeText(BCActivity.this,"网络 is not able",Toast.LENGTH_LONG).show();
}
}
}
}
2、静态广播
<receiver android:name="com.test.BCRevicer"
android:exported="true">
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED"></action>
</intent-filter>
</receiver>
package com.test;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class BCRevicer extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context,"phone start",Toast.LENGTH_LONG).show();
}
}
二、 自定义广播
1 标准广播
package com.test;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class BCRevicer extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context,"标准广播",Toast.LENGTH_LONG).show();
}
}
package com.test;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.widget.Toast;
import androidx.annotation.Nullable;
import com.example.textmethod.R;
public class BCActivity extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.new_main);
Intent intent=new Intent("android.aaaa");
intent.setComponent(new ComponentName("com.example.textmethod","com.test.BCRevicer"));
sendBroadcast(intent);
}
}
有序广播
package com.test;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.annotation.Nullable;
import com.example.textmethod.R;
public class BCActivity extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.new_main);
Button btn =findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setAction("com.android.broadcasttest.MY_BACAST");
sendBroadcast(intent);
}
});
BCRevicer bcRevicer = new BCRevicer();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("com.android.broadcasttest.MY_BACAST");
intentFilter.setPriority(88);
registerReceiver(bcRevicer, intentFilter);
BCRevicer1 bcRevicer2 = new BCRevicer1();
IntentFilter intentFilter2 = new IntentFilter();
intentFilter2.addAction("com.android.broadcasttest.MY_BACAST");
intentFilter2.setPriority(100);
registerReceiver(bcRevicer2, intentFilter);
}
}
本地广播
package com.test;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import com.example.textmethod.R;
public class BCActivity extends Activity {
BCRevicer bcRevicer;
LocalBroadcastManager localBroadcastManager;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.new_main);
Button btn = findViewById(R.id.btn);
bcRevicer = new BCRevicer();
localBroadcastManager=LocalBroadcastManager.getInstance(BCActivity.this);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setAction("com.android.broadcasttest.MY_BACAST");
localBroadcastManager.sendBroadcast(intent);
}
});
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("com.android.broadcasttest.MY_BACAST");
localBroadcastManager.registerReceiver(bcRevicer, intentFilter);
}
@Override
protected void onDestroy() {
super.onDestroy();
localBroadcastManager.unregisterReceiver(bcRevicer);
}
}