在被 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
}
最佳答案
在调用PendingIntent.getBroadcast()
之前,您必须将extras放入Intent
,否则它们不会在实际交付的 Intent
。
关于android - BroadcastReceiver 上的数据为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38621935/