Android PlatformUpdated April 2026

Android widgets,
from RemoteViews to Glance

Android widgets are mini app views you can pin to the home screen, lock screen, and Pixel's At a Glance area. They are similar to iOS widgets but more interactive — and not optimized for the real-time, ephemeral updates you'd use ongoing notifications for.

Quick answer

An Android widget is a mini view from your app that the user can pin to a launcher (home screen, lock screen, At a Glance). Built with the App Widget framework and RemoteViews, or the modern Jetpack Glance (Compose-style) API. Widgets are not the right tool for real-time updates — for that, use an ongoing notification or Live Update.

What Are Android Widgets?

Android widgets shipped with Android 1.5 in 2009 — long before iOS widgets. They run in the launcher process, not your app. Your app supplies a RemoteViews tree (a serializable description of the UI), the launcher inflates and renders it, and clicks are bridged back to your app via broadcast intents.

Android 12 (Material You) gave them a major refresh: rounded corners, dynamic color, snap-to-grid sizing, and easier APIs via Jetpack Glance.

App Widgets vs Jetpack Glance

1

App Widgets (classic)

XML layouts + RemoteViews + AppWidgetProvider. Works on every Android version. Verbose but maximally flexible.

2

Jetpack Glance

A Compose-flavored DSL that compiles to RemoteViews. Recommended for new widgets — much less code, modern APIs, easier theming, and works with Material You dynamic color.

3

Glance for Wear OS Tiles

Same Glance API powers Wear OS tiles, so you get a watch widget and a phone widget from one codebase.

Widget Sizes & Resizing

Since Android 12 you declare a target cell size (in dp) and a list of supported sizes; the launcher resizes the widget by snapping to its grid. Use SizeF arrays in AppWidgetProviderInfo or Glance's SizeMode.Responsive to render different layouts at different sizes — small, medium, large.

Resizable

Set resizeMode="horizontal|vertical" so the user can drag the widget edges.

Min/target dp

Use targetCellWidth and targetCellHeight (12+) for clean snapping; minWidth and minHeight as the fallback for older devices.

Max sizes

maxResizeWidth and maxResizeHeight let you cap the upper bound for very tall layouts.

Lock-screen sizes

Lock-screen widgets render smaller and tinted; design specifically for the smaller surface.

How Widgets Update

  • updatePeriodMillis in AppWidgetProviderInfo — but the system clamps to once per 30 minutes minimum, even if you set less.
  • Manual updates: call AppWidgetManager.getInstance(ctx).updateAppWidget(id, views) whenever your data changes.
  • WorkManager: schedule periodic work (15 min minimum) and refresh widgets when it runs.
  • Push: use FCM to wake the app, fetch fresh data, and update the widget.
  • User interaction: onAppWidgetOptionsChanged fires when the user resizes; perfect time to re-render.

Interactivity & Lists

Android widgets have always been more interactive than iOS widgets. You can:

  • Wire buttons to PendingIntents to launch activities, services, or broadcasts.
  • Use RemoteViewsService + RemoteViewsFactory to back a ListView or GridView inside a widget.
  • Use setOnClickPendingIntent at the row level for taps inside lists.
  • Glance maps these to actionStartActivity, actionRunCallback, and a Compose-style LazyColumn.

Android Widgets vs iOS Widgets

Android wins on

Interactivity (buttons everywhere, scrolling lists), resizing (user drag), and theming via Material You dynamic color.

iOS wins on

Visual consistency (every widget gets the same chrome), lock-screen integration, StandBy mode, and tighter sizing per device.

Both share

A "snapshot" mental model — widgets are not live videos. They are periodically rendered slices of state.

Pick by use case

Persistent ambient info → widget. Real-time event → ongoing notification on Android, Live Activity on iOS.

See our iOS Widgets guide for the iOS half.

Widgets vs Ongoing Notifications

Use a widget for ambient info the user might want anytime (weather, calendar, stocks, todos). Use an ongoing notification (often paired with a foreground service) for real-time, ephemeral, event-driven info — navigation, music, ride tracking, calls.

Frequently Asked Questions

What are Android widgets?

Android widgets are mini app views the user can place on the home screen, lock screen, or Pixel’s At a Glance area. They run inside the launcher process via RemoteViews and update on a schedule plus user action. Conceptually they are similar to iOS widgets but historically more interactive.

What is the difference between App Widgets and Glance?

App Widgets is the original XML + RemoteViews framework introduced in Android 1.5. Jetpack Glance (released 2022) lets you build widgets with Compose-style declarative code that compiles down to RemoteViews under the hood. Glance is now Google’s recommended path.

How are Android widgets different from iOS widgets?

Android widgets can include more interactive UI (buttons, lists with scrolling, ListView/GridView via RemoteViewsService). iOS widgets only became interactive in iOS 17 and are limited to App Intents. On the other hand, iOS widgets can be tinted, sized, and theme-matched more aggressively.

Do Android widgets support lock-screen placement?

Lock-screen widgets were removed in Android 5.0 and reintroduced for Pixel and Material You devices in Android 14 (with limitations) and broadened in Android 16 across more OEMs. Many launchers also support lock-screen widget panels independently.

How often do Android widgets refresh?

You declare an updatePeriodMillis in widget metadata, but the system clamps it to no more than once every 30 minutes. For more frequent updates use AlarmManager, WorkManager, or push the data via FCM and call AppWidgetManager.updateAppWidget().

Can I build Android widgets with React Native or Flutter?

Native widget code must be in Kotlin/Java (or Glance/Compose). React Native, Flutter, and Expo apps add widgets via a small native module. Newly handles this for you when you build a cross-platform app from a prompt.

Ship an Android app with widgets and ongoing notifications.

Newly turns a one-line idea into a complete native iOS + Android app — widgets, ongoing notifications, FCM, foreground services, and more.