在实际开发中,动态广播应用较多,无需在清单文件中注册,直接在java代码里注册。
一、添加广播类
添加一个类,继承广播接收者类BroadcastReceiver。
package Broad;
//请删除包代码
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class MyBroad extends BroadcastReceiver {
public final static String TAG = "test";
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG,"接收到广播");
}
}
二、添加一个界面,在界面里添加一个按钮,实例化后对按钮进行监听。
package Broad;
//删除包代码
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.widget.Button;
import com.example.test_one.R;
public class SendBroad extends AppCompatActivity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_send_broad);
button = findViewById(R.id.send_broad_button);
MyBroad myBroad = new MyBroad();//自定义广播类
IntentFilter filter = new IntentFilter();
filter.addAction(MyBroad.TAG);//设置广播标识
registerReceiver(myBroad,filter);//注册广播
button.setOnClickListener(v->{
Intent intent = new Intent();
intent.setAction(MyBroad.TAG);//使用唯一的名字
sendBroadcast(intent);//发送广播
});
}
}
成功发送和接收广播后会打印日志信息。