Live Updates for Android

Show progress as it happens

One Android 16 notification that rewrites itself as an order, a ride or a match moves along. Pushwoosh starts, refreshes and ends it from the server, with the app closed.

Three Android phone screens side by side showing a live notification card: a food delivery at the courier step, a ride with the driver two minutes away, and a match score with the clock running

Trusted by 80,000+ companies to scale their engagement

The format in full

A plain push says one thing once, and a five-step order turns into five notifications. A Live Update posts one card for the whole activity and then keeps rewriting it, so the lock screen always shows the current step instead of a stack of old ones.

One ongoing card

The activity gets a single notification on the lock screen and in the shade, and every later update rewrites that card rather than adding another.

Progress that moves

Pushwoosh renders Android's native Notification.ProgressStyle, so the bar, its value and its colour-coded segments are the real OS primitive.

A chip in the status bar

While the activity runs, Android keeps a compact indicator in the status bar, visible from inside any other app.

Time anchors

An update can carry a time anchor, so the card counts down to the ETA on its own between server refreshes.

Action buttons on the live card

The SDK module wires the buttons alongside the progress, so a tap can open the map or call the courier from the card itself.

Your own rendering

LiveUpdateProgressStyleProvider hands the drawing to your app, so colours, icons and segment labels follow your design.

Where a Live Update sits between a push and a screen

When the message isSendWhere it lives
One change of state, said onceA plain pushThe banner, then the shade
One change worth a pictureA rich media pushThe expanded notification
A choice the user can make in a tapAn interactive pushButtons on the notification
An activity in progress, minutes to hoursA Live UpdateOne ongoing card that rewrites itself, plus a status bar chip
A record the user comes back to laterMessage InboxA list inside the app
Detail, a form or a layoutAn in-app messageA full screen in the app
When the message is
1 / 6
One change of state, said once
Where it lives
The banner, then the shade
When the message is
2 / 6
One change worth a picture
Where it lives
The expanded notification
When the message is
3 / 6
A choice the user can make in a tap
Where it lives
Buttons on the notification
When the message is
4 / 6
An activity in progress, minutes to hours
Send
A Live Update
Where it lives
One ongoing card that rewrites itself, plus a status bar chip
When the message is
5 / 6
A record the user comes back to later
Where it lives
A list inside the app
When the message is
6 / 6
Detail, a form or a layout
Where it lives
A full screen in the app

The job it does inside a journey

One Journey for both platforms

A Live Update is an attribute of a message you are already sending. The audience, the trigger, the segment and the customer profile stay where they are, and the format decides what that message looks like while the activity is still running.

Android 16 devices get the live card, iPhones get the Live Activity, and older Android phones get a standard push, all from the same Customer Journey that runs your push, in-app and email.

An order worked end to end

The restaurant accepts the order and the Journey opens the card at its first step.

A silent push warms the courier data in the background, invisible to the user, so the next refresh lands with a real name and a real ETA. Cooking, courier assigned and two minutes away then rewrite that same card, and the delivered event closes it.

On a phone below Android 16 the same Journey sends a plain push at every step, and both branches leave the receipt in Message Inbox.

What to use it for

A Live Update earns its place when something is genuinely in progress and the user is already waiting on it. For an announcement, an offer or anything the user did not start, a plain push is the right format, and Google’s policy for this surface says the same.

MomentWhat the card carriesWhat the user does
Food delivery · an order in progressAccepted, cooking, courier assigned, minutes awayWatches the courier close in from a locked screen
Ride-hailing · a trip underwayDriver en route, ETA, trip progressGlances at the lock screen instead of going back to the map
E-commerce · after the purchaseShipped, out for delivery, stops away, deliveredFollows the parcel from the shade and knows when to be in
Marketplaces · several orders at onceOne card per shipment, each with its own sellerKeeps track of parcels landing on different days
Airlines · the day of the flightGate, boarding, delay, baggage beltChecks the gate from the lock screen in a loud terminal
Live sports · a match in playScore, clock, periodFollows the cricket or the football with the phone locked
Sports betting · an in-play betBet status, live odds, cash-out windowActs on the cash-out before the window closes
Banking · a transfer in flightTransfer progress, card delivery statusSees the money land while the phone stays in a pocket
Field services · a technician on the wayEn route, ETA, arrivedStops guessing which hour to stay home for
Energy · an outage in your streetFault confirmed, crew on site, restore ETAGets an answer without calling the support line
Moment
1 / 10
Food delivery · an order in progress
What the card carries
Accepted, cooking, courier assigned, minutes away
What the user does
Watches the courier close in from a locked screen
Moment
2 / 10
Ride-hailing · a trip underway
What the card carries
Driver en route, ETA, trip progress
What the user does
Glances at the lock screen instead of going back to the map
Moment
3 / 10
E-commerce · after the purchase
What the card carries
Shipped, out for delivery, stops away, delivered
What the user does
Follows the parcel from the shade and knows when to be in
Moment
4 / 10
Marketplaces · several orders at once
What the card carries
One card per shipment, each with its own seller
What the user does
Keeps track of parcels landing on different days
Moment
5 / 10
Airlines · the day of the flight
What the card carries
Gate, boarding, delay, baggage belt
What the user does
Checks the gate from the lock screen in a loud terminal
Moment
6 / 10
Live sports · a match in play
What the card carries
Score, clock, period
What the user does
Follows the cricket or the football with the phone locked
Moment
7 / 10
Sports betting · an in-play bet
What the card carries
Bet status, live odds, cash-out window
What the user does
Acts on the cash-out before the window closes
Moment
8 / 10
Banking · a transfer in flight
What the card carries
Transfer progress, card delivery status
What the user does
Sees the money land while the phone stays in a pocket
Moment
9 / 10
Field services · a technician on the way
What the card carries
En route, ETA, arrived
What the user does
Stops guessing which hour to stay home for
Moment
10 / 10
Energy · an outage in your street
What the card carries
Fault confirmed, crew on site, restore ETA
What the user does
Gets an answer without calling the support line
The format is half the job. The other half is what you put in it

50 push notifications worth copying, with the copy and the creative that made them work.

Get the examples

Platform & technical coverage

Live, self-refreshing cards are new, and the version floors are the first thing to check against your own install base. The last column says where the push is the format itself, and where it only drives something your app already ships.

CapabilityAndroidiOSWebDelivered by
An ongoing card that refreshes in placeAndroid 16 (API 36)iOS 16.1+, as a Live ActivityThe push, rendered by the SDK against the OS live-notification API
Native segmented progress barAndroid 16, Notification.ProgressStyleYour ActivityKit widgetpushwoosh-liveupdates 6.9.0+, wrapping the OS primitive
Always-visible compact indicatorStatus bar chipDynamic Island, iPhone 14 Pro and laterThe OS, from the live notification
Server-driven start, update and endYesYesOPERATION_START · OPERATION_UPDATE · OPERATION_END in the Messages API
Dismissing the card from the appendLiveUpdate(id), endAllLiveUpdates()YesThe PushwooshLiveUpdates facade in your app
Brand styling of the live cardLiveUpdateProgressStyleProviderYour widget codeYour app code, called by the SDK
Android 15 and below–, SDK calls are no-opsn/aA standard push or Message Inbox on the same Journey
Capability
1 / 7
An ongoing card that refreshes in place
Android
Android 16 (API 36)
iOS
iOS 16.1+, as a Live Activity
Web
Delivered by
The push, rendered by the SDK against the OS live-notification API
Capability
2 / 7
Native segmented progress bar
Android
Android 16, Notification.ProgressStyle
iOS
Your ActivityKit widget
Web
Delivered by
pushwoosh-liveupdates 6.9.0+, wrapping the OS primitive
Capability
3 / 7
Always-visible compact indicator
Android
Status bar chip
iOS
Dynamic Island, iPhone 14 Pro and later
Web
Delivered by
The OS, from the live notification
Capability
4 / 7
Server-driven start, update and end
Android
Yes
iOS
Yes
Web
Delivered by
OPERATION_START · OPERATION_UPDATE · OPERATION_END in the Messages API
Capability
5 / 7
Dismissing the card from the app
Android
endLiveUpdate(id), endAllLiveUpdates()
iOS
Yes
Web
Delivered by
The PushwooshLiveUpdates facade in your app
Capability
6 / 7
Brand styling of the live card
Android
LiveUpdateProgressStyleProvider
iOS
Your widget code
Web
Delivered by
Your app code, called by the SDK
Capability
7 / 7
Android 15 and below
Android
–, SDK calls are no-ops
iOS
n/a
Web
Delivered by
A standard push or Message Inbox on the same Journey

Security & hosting

Pushwoosh runs on its own hardware in the US and Germany, under GDPR and BDSG.

ISO 27001:2022 CertifiedISO 27001 CertifiedGDPR CompliantData Privacy FrameworkHIPAA CompliantSOC 2 Type I CertifiedOWASP Compliant

How it works

The Android build is a one-time engineering step. After that the three operations run from the Control Panel and the API like any other message in the Journey.

  1. Add the module once (developer)

    Drop pushwoosh-liveupdates 6.9.0+ into the Android app. It catches Live Update pushes ahead of standard notification handling and takes care of the channel, the permission, the large icon and the action buttons. LiveUpdateProgressStyleProvider is where you brand the card.

  2. Drive the whole lifecycle from the server (API)

    OPERATION_START posts the card, OPERATION_UPDATE rewrites it in place, OPERATION_END dismisses it, all through the Messages API with one activity ID tying them together. The app can also close a card it holds with PushwooshLiveUpdates.endLiveUpdate(), with no server round trip.

  3. Orchestrate it (no-code)

    Fire the three operations from the same Customer Journey as the rest of your messaging, against the same segment and the same customer profile. The iOS half of the same story runs from that Journey too.

Limits worth knowing

The surface is new and tightly scoped. These are its edges.

  • Android 16 (API 36) and newer. On earlier versions the SDK calls are no-ops, with no crash and no fallback card, so branch the Journey to a standard push for those devices.
  • The card is drawn with Notification.ProgressStyle, an Android 16 rendering primitive. That is why it cannot be back-ported the way a rich push template can.
  • Every start, refresh and end comes from your server. There is no on-device posting API, and the app can only dismiss a card it already holds.
  • Google restricts the surface to real activity: no promotions, no chat messages, no ambient information. Misuse puts your access to it at risk.
  • iOS is a separate build. Live Activities cover the same job on iPhone through ActivityKit, driven by the same Journey but with their own SDK work.
  • Reporting sees each operation push. Glances at the card leave no marker on the payload, so per-update engagement comes from in-app events you send back.