public static interface RemoteViewsService.RemoteViewsFactory

android.widget.RemoteViewsService.RemoteViewsFactory



An interface for an adapter between a remote collection view (ListView, GridView, etc) and the underlying data for that view. The implementor is responsible for making a RemoteView for each item in the data set. This interface is a thin wrapper around Adapter.

Summary

Public methods

abstract int getCount()

See Adapter.getCount()

abstract long getItemId(int position)

See Adapter.getItemId(int).

abstract RemoteViews getLoadingView()

This allows for the use of a custom loading view which appears between the time that getViewAt(int) is called and returns.

abstract RemoteViews getViewAt(int position)

See Adapter.getView(int,android.view.View,android.view.ViewGroup).

abstract int getViewTypeCount()

See Adapter.getViewTypeCount().

abstract boolean hasStableIds()

See Adapter.hasStableIds().

abstract void onCreate()

Called when your factory is first constructed.

abstract void onDataSetChanged()

Called when notifyDataSetChanged() is triggered on the remote adapter.

abstract void onDestroy()

Called when the last RemoteViewsAdapter that is associated with this factory is unbound.

Public methods

getCount

public abstract int getCount ()

See Adapter.getCount()

Returns
int Count of items.

getItemId

public abstract long getItemId (int position)

See Adapter.getItemId(int).

Parameters
position int: The position of the item within the data set whose row id we want.
Returns
long The id of the item at the specified position.

getLoadingView

public abstract RemoteViews getLoadingView ()

This allows for the use of a custom loading view which appears between the time that getViewAt(int) is called and returns. If null is returned, a default loading view will be used.

Returns
RemoteViews The RemoteViews representing the desired loading view.

getViewTypeCount

public abstract int getViewTypeCount ()

See Adapter.getViewTypeCount().

Returns
int The number of types of Views that will be returned by this factory.

hasStableIds

public abstract boolean hasStableIds ()

See Adapter.hasStableIds().

Returns
boolean True if the same id always refers to the same object.

onCreate

public abstract void onCreate ()

Called when your factory is first constructed. The same factory may be shared across multiple RemoteViewAdapters depending on the intent passed.

onDataSetChanged

public abstract void onDataSetChanged ()

Called when notifyDataSetChanged() is triggered on the remote adapter. This allows a RemoteViewsFactory to respond to data changes by updating any internal references. Note: expensive tasks can be safely performed synchronously within this method. In the interim, the old data will be displayed within the widget.

onDestroy

public abstract void onDestroy ()

Called when the last RemoteViewsAdapter that is associated with this factory is unbound.

Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Last updated 2026-02-26 UTC.