将数据从清单注册的BroadcastReceiver传递到Activity可以通过以下步骤完成:
<application>
标签内添加以下代码:<receiver
android:name=".YourBroadcastReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.example.ACTION_DATA_RECEIVED" />
</intent-filter>
</receiver>
YourBroadcastReceiver
,并实现onReceive()
方法来处理接收到的广播数据。例如:public class YourBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 处理接收到的广播数据
String data = intent.getStringExtra("data");
// 将数据传递给Activity
Intent activityIntent = new Intent(context, YourActivity.class);
activityIntent.putExtra("data", data);
activityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(activityIntent);
}
}
public class YourActivity extends AppCompatActivity {
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// 获取传递的数据
String data = intent.getStringExtra("data");
// 在Activity中处理接收到的数据
}
};
@Override
protected void onResume() {
super.onResume();
// 注册BroadcastReceiver
IntentFilter intentFilter = new IntentFilter("com.example.ACTION_DATA_RECEIVED");
registerReceiver(receiver, intentFilter);
}
@Override
protected void onPause() {
super.onPause();
// 取消注册BroadcastReceiver
unregisterReceiver(receiver);
}
}
通过以上步骤,当BroadcastReceiver接收到广播时,它会创建一个带有传递数据的Intent,并启动需要接收数据的Activity。Activity在onResume()
方法中注册BroadcastReceiver来接收传递的数据,并在onPause()
方法中取消注册。
领取专属 10元无门槛券
手把手带您无忧上云