下面列出了怎么用android.appwidget.AppWidgetProvider的API类实例代码及写法,或者点击链接到github查看源代码。
public static void updateAllWidgets(boolean SU_SEL, final Context context,
final int layoutResourceId,
final Class < ? extends AppWidgetProvider > appWidgetClass) {
boolean su = SuBinary();
boolean selinux = isSELinuxActive(context);
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), layoutResourceId);
remoteViews.setTextViewText(R.id.iSuMain, "SU" + "\n" + (su ?
context.getString(R.string.activated) : context.getString(R.string.deactivated)));
remoteViews.setInt(R.id.iSuMain, "setBackgroundResource", (su ? R.drawable.button :
R.drawable.buttong));
if (SU_SEL) {
remoteViews.setTextViewText(R.id.iSuMonitor, context.getString(R.string.selinux) + "\n" + (selinux ? context.getString(R.string.enforcing) :
context.getString(R.string.permissive)));
remoteViews.setInt(R.id.iSuMonitor, "setBackgroundResource", (selinux ? R.drawable.buttong :
R.drawable.button));
}
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
final int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName(context, appWidgetClass));
appWidgetManager.partiallyUpdateAppWidget(appWidgetIds, remoteViews);
}
public static void updateWidgets(Context context, Class<? extends AppWidgetProvider> widgetType) {
Intent intent = new Intent(context, widgetType);
intent.setAction("android.appwidget.action.APPWIDGET_UPDATE");
int ids[] = AppWidgetManager.getInstance(context)
.getAppWidgetIds(new ComponentName(context, widgetType));
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS,ids);
context.sendBroadcast(intent);
}
/**
* Provides the Context for the AppWidgetProvider associated with this graph.
*
* @return the AppWidgetProvider Context
*/
@Provides
@Singleton
@AppWidgetProvider
public Context provideAppWidgetProviderContext() {
return mContext;
}
/**
* Provides the Injector for the AppWidgetProvider-scope graph
*
* @return the Injector
*/
@Provides
@Singleton
@AppWidgetProvider
public Injector provideAppWidgetProviderInjector() {
return mInjector;
}
private Class<? extends AppWidgetProvider> getAppWidgetProvider() {
return NewsAppWidgetProvider.class;
}
/**
* Class constructor.
*
* @param appWidgetProvider the InjectingAppWidgetProvider with which this module is associated.
*/
public InjectingAppWidgetProviderModule(Context context, android.appwidget.AppWidgetProvider appWidgetProvider, Injector injector) {
mContext = context;
mAppWidgetProvider = appWidgetProvider;
mInjector = injector;
}
/**
* Provides the AppWidgetProvider
*
* @return the AppWidgetProvider
*/
@Provides
@Singleton
public android.appwidget.AppWidgetProvider provideAppWidgetProvider() {
return mAppWidgetProvider;
}