Я пытаюсь создать уведомление и получить его через некоторое время.Получение 'E/JavaBinder: !!! СРОК ДЕЙСТВИЯ СДЕЛКИ !!! (размер посылки = 9448080) 'при попытке создать уведомление
Вот как:
futureInMillis = SystemClock.elapsedRealtime() + 176000;
Intent notificationIntent = new Intent(getBaseContext(), NotificationG.class);
notificationIntent.putExtra(NotificationG.NOTIFICATION, getNotification());
PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), m, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, futureInMillis, pendingIntent);
Вот NotificationG.class
:
public class NotificationG extends BroadcastReceiver {
public static String NOTIFICATION = "notification_gatsp";
public static NotificationManager mNotifyMgr;
@Override
public void onReceive(Context context, Intent intent) {
mNotifyMgr =
(NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);
Notification notification = intent.getParcelableExtra(NOTIFICATION);
notification.defaults |= Notification.DEFAULT_SOUND;
notification.defaults |= Notification.DEFAULT_VIBRATE;
mNotifyMgr.notify(5, notification);
}
}
Вот это getNotification()
метод:
public Notification getNotification() {
icon = BitmapFactory.decodeResource(getBaseContext().getResources(),
R.drawable.app_icon_1);
mBuilder =
new NotificationCompat.Builder(getBaseContext())
.setSmallIcon(R.mipmap.app_icon_1)
.setContentTitle("title")
.setLargeIcon(icon)
.setStyle(new NotificationCompat.BigTextStyle().bigText(""))
.setContentText("");
Intent resultIntent = new Intent(getBaseContext(), ARequest.class);
resultIntent.putExtra("text", text);
resultIntent.putExtra("text", text);
resultIntent.putExtra("text", text);
resultIntent.putExtra("text", text);
resultIntent.putExtra("text", text);
resultIntent.putExtra("text", text);
resultIntent.putExtra("text", text);
resultIntent.putExtra("text", text);
resultIntent.putExtra("text", text);
resultIntent.putExtra("text", text);
resultIntent.putExtra("text", text);
resultIntent.putExtra("text", text);
resultIntent.putExtra("text", text);
resultIntent.putExtra("text", text);
resultIntent.putExtra("text", text);
resultIntent.putExtra("text", text);
resultIntent.putExtra("text", text);
// Because clicking the notification opens a new ("special") activity, there's
// no need to create an artificial back stack.
PendingIntent resultPendingIntent =
PendingIntent.getActivity(
getBaseContext(),
0,
resultIntent,
PendingIntent.FLAG_UPDATE_CURRENT
);
mBuilder.setAutoCancel(true);
mBuilder.setContentIntent(resultPendingIntent);
return mBuilder.build();
}
, но я не получаю какого-либо уведомления вместо этой ошибки: E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 9448080)
является распечатывается.
Что происходит здесь и как его исправить?
Пожалуйста, дайте мне знать.
Это фактический код, который вы используете (со всеми этими вызовами 'putExtra (« text », text)»? Или это просто пример. Похоже, ваше уведомление имеет размер 9 МБ, который слишком велик. Что вы вкладываете в «Intent» как дополнительные функции? –
@DavidWasser да, это фактический код, но я заменил фактический ключ и значение на «текст». Я помещаю только тексты в «Intent» в качестве дополнительных функций. –