相关疑难解决方法(0)

将数据从小部件传递到应用程序

我正在为我的应用程序开发一个小部件,我想将小部件中的特定数据传递给应用程序.用户可以添加多个版本的小部件,我需要检测它来自哪个小部件,以便我可以在应用程序中显示特定信息.

到目前为止我的工作,但只有当我完全退出我的应用程序(反复按下后退按钮),否则它似乎没有检测到传入的数据.

这个代码我必须将数据从小部件传递到应用程序:

public class WidgetProvider extends AppWidgetProvider  {

    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {

        final int N = appWidgetIds.length;

        for (int i=0; i<N; i++) 
            UpdateWidget(context, appWidgetManager, appWidgetIds[i]);
    }

    public static void UpdateWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId)
    {
        Intent intent = new Intent(context, Main.class);
        final Bundle bun = new Bundle();
        bun.putInt("widgetId", appWidgetId);
        intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME)));
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.putExtras(bun);

        PendingIntent pendingIntent = PendingIntent.getActivity(context, appWidgetId, intent, PendingIntent.FLAG_UPDATE_CURRENT);

        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
        views.setOnClickPendingIntent(R.id.widgetText, pendingIntent);

        appWidgetManager.updateAppWidget(appWidgetId, views);
    }
} …
Run Code Online (Sandbox Code Playgroud)

android android-widget android-pendingintent

3
推荐指数
1
解决办法
2887
查看次数