android - NotificationCompat Ticker Text Not Showing When Updating Notification -


background

this app writing familiarize myself of apis, serves no real purpose other demonstrate functionality in android. have service running in foreground (startforeground), , has ongoing notification when tapped returns application. service listens broadcasts , logs them db.

start service, create notification

i create notification using notificationcompat.builder in oncreate of service:

@override public void oncreate() {     super.oncreate();     log.v(tag, "oncreate");      // notification manager update notifications     mnotificationmanager = (notificationmanager) getsystemservice(context.notification_service);      intent openappintent = new intent(this, mainactivity.class);     openappintent.setflags(intent.flag_activity_clear_top | intent.flag_activity_single_top);     pendingintent selectnotifpendingintent = pendingintent.getactivity(this, 0, openappintent, 0);      // build notification show     mnotificationbuilder = new notificationcompat.builder(this)     .setcontenttitle("monitor service")     .setcontenttext("logging system events")     .setticker("starting monitor service")     .setsmallicon(r.drawable.ic_stat_cloud)     .setcontentintent(selectnotifpendingintent)     .setonlyalertonce(false)     .setpriority(notificationcompat.priority_low)     .setuseschronometer(true);      // start service in foreground     startforeground(monitorservice.notification_id_foreground, mnotificationbuilder.build());      // more code....  } 

when service starts, notification , ticker text both shown on versions of android:

service notification startup on android 2.3.3

next, update notification

i added callback interface service, update notification changing ticker text , content text:

@override public void updatenotificationticker(string newtickertext) {     log.d(tag, "updatenotificationticker");      if (mnotificationbuilder != null && mnotificationmanager != null) {         mnotificationbuilder.setticker(newtickertext);         mnotificationbuilder.setcontenttext(newtickertext);         mnotificationmanager.notify(notification_id_foreground, mnotificationbuilder.build());     } } 

to test updating notification, had broadcastreceiver listen time tick broadcasts, , call updatenotificationticker current time:

    else if (action.equals(android.content.intent.action_time_tick)) {         simpledateformat sdf = new simpledateformat("h:mm aa", locale.us);         string message = "the time " + sdf.format(new date());         newlogentry.setmessage(message);          // update ticker notification time         if (mnotificationcallback != null) {             mnotificationcallback.updatenotificationticker(message);         }     } 

this works on (almost) every version of android, ticker text flashes , content text updated on notification:

  • android 2.2 (api 8)
  • android 4.0.3 (api 15)
  • android 4.1.2 (api 16)
  • android 4.2.2 (api 17)

android 2.2

android 4.0.3

different behavior on android 2.3.3

when run on android 2.3.3 (api 10) emulator or device, ticker text shown when first starting service (seen in 1st screenshot: "starting monitor service"). however, ticker text never shown when updating notification, though content text update.

android 2.3.3

questions

  • am setting notificationcompat.builder in way causing ticker text not show on android 2.3.3?
  • or, android 2.3.3 behave differently other versions when showing ticker text while updating ongoing notification?
  • or, defect notificationcompat.builder not working on android 2.3.3?


Comments

Popular posts from this blog

java - Jmockit String final length method mocking Issue -

asp.net - Razor Page Hosted on IIS 6 Fails Every Morning -

c++ - wxwidget compiling on windows command prompt -