所以,我正在开发一个应用程序,它有 5 个主要功能。我想为这些功能制作小部件 - 每个小部件都提供一个功能。我制作了 5 个布局、5 个提供程序属性 xml 和 5 个 AppWidgetProvider 类。在每个提供程序类中,我都实现了 onUpdate() 方法,您可以在下面的代码中看到。并且确定我已经在清单文件中注册了它们。我的问题是,当我单击其中一个小部件时,它也会调用其他小部件 onUpdate 方法,并且只有最后一个小部件启动服务。如何使 5 小部件独立?
提供者类之一:
public class myWidgetProvider extends AppWidgetProvider {
    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        final int N = appWidgetIds.length;
        for (int i = 0; i < N; i++) {
            int appWidgetId = appWidgetIds[i];
            String label = appWidgetManager.getAppWidgetInfo(appWidgetId).label;
            Intent intent = new Intent(context, WidgetService.class);
            intent.putExtra(Constants.FUNCTION, Constants.F1);
            PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
            RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_f1);
            remoteViews.setOnClickPendingIntent(R.id.widgetF1Button, pendingIntent);
            appWidgetManager.updateAppWidget(appWidgetId, remoteViews);
        }
    }
}
小部件服务:
    public class WidgetService extends Service {
        @Override
        public int onStartCommand(Intent intent, int flags, int startId) {
            Bundle bundle = intent.getExtras();
            int function = bundle.getInt(Constants.FUNCTION);
            switch (function) {
                case Constants.F1
                      //function1
                case Constants.F2:
                      //funcion2
                case Constants.F3: {
                      //function3
                case Constants.F4: {
                      //function4
                case Constants.F5: {
                      //function5public class WidgetService extends Service {
         }
        return START_STICKY;
    }
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
}