BroadcastReceiver 上的数据为空
Data on BroadcastReceiver is null
我试图在被 AndroidManifest 记录之前通过 Intent 将数据发送到我的广播。当我单击我的通知以触发广播时,我在方法 OnReceive(Context context, Intent intent)
中得到 null
Intent intentOnclick = new Intent(Intent.ACTION_SYNC, null, context, NotificationButton.class);
PendingIntent onClickPending = PendingIntent.getBroadcast(context, 0, intentOnclick, 0);
notificationView = new RemoteViews(context.getPackageName(), R.layout.download_notification);
intentOnclick.putExtra("test", notificationView);
intentOnclick.putExtra("test1", 1);
builder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ic_launcher)
.setAutoCancel(true)
.setContent(notificationView);
notificationView.setProgressBar(R.id.download_progress, 100, 0, true);
notificationView.setTextColor(R.id.title_notification, Color.BLACK);
notificationView.setOnClickPendingIntent(R.id.play_or_pause_btn, onClickPending);
我的广播接收器:
@Override
public void onReceive(Context context, Intent intent) {
RemoteViews remoteViews = intent.getParcelableExtra("test");
int test = intent.getIntExtra("test1", 265);
// return null twice object
}
你必须在 Intent
调用 PendingIntent.getBroadcast()
之前将 extras 放在 中,否则它们不会在 Intent
实际交付。
我试图在被 AndroidManifest 记录之前通过 Intent 将数据发送到我的广播。当我单击我的通知以触发广播时,我在方法 OnReceive(Context context, Intent intent)
Intent intentOnclick = new Intent(Intent.ACTION_SYNC, null, context, NotificationButton.class);
PendingIntent onClickPending = PendingIntent.getBroadcast(context, 0, intentOnclick, 0);
notificationView = new RemoteViews(context.getPackageName(), R.layout.download_notification);
intentOnclick.putExtra("test", notificationView);
intentOnclick.putExtra("test1", 1);
builder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ic_launcher)
.setAutoCancel(true)
.setContent(notificationView);
notificationView.setProgressBar(R.id.download_progress, 100, 0, true);
notificationView.setTextColor(R.id.title_notification, Color.BLACK);
notificationView.setOnClickPendingIntent(R.id.play_or_pause_btn, onClickPending);
我的广播接收器:
@Override
public void onReceive(Context context, Intent intent) {
RemoteViews remoteViews = intent.getParcelableExtra("test");
int test = intent.getIntExtra("test1", 265);
// return null twice object
}
你必须在 Intent
调用 PendingIntent.getBroadcast()
之前将 extras 放在 中,否则它们不会在 Intent
实际交付。