java - 多个主屏幕小部件 - Android
问题描述
有没有人尝试在 Android 应用中添加多个主屏幕小部件?我有一个小问题。我的所有小部件都已设置,刷新工作正常等,但我无法从它们启动应用程序 - 有时它们都将我带到应用程序有时没有。
我知道我在哪里犯了错误,但是我不知道如何解决它。
我的助手类存储在 updateWidget 函数上,它应该使小部件也可点击。
static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
int appWidgetId, int viewId, String sharedPreferencesPropertyName
) {
try {
Intent intent = new Intent(context, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(), viewId);
Helper.getPreferenceAndSetSubtitle(context, views, sharedPreferencesPropertyName);
views.setOnClickPendingIntent(R.id.fullLinearLayout, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, views);
} catch (Exception e) {
e.printStackTrace();
}
}
我认为这条线导致了这个问题
RemoteViews views = new RemoteViews(context.getPackageName(), viewId);
viewID 应该替换为 R.layout.widget_name 但我有 6 个,所以我必须调用它 6 次吗?
此外,我在每个小部件类中调用它,如下例所示,没有任何事情发生。
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
for (int appWidgetId : appWidgetIds) {
Helper.updateAppWidget(context, appWidgetManager, appWidgetId, R.layout.red_cells_2_widget, "flutter.redCells2");
}
}