【问题标题】:android widget id only for current widgetandroid 小部件 id 仅适用于当前小部件
【发布时间】:2012-11-23 18:51:09
【问题描述】:

我可以在AppWidgetProvideronUpdate() 方法中获取我当前的widgetId 吗?

我在 Intent 字段中发现了很多关于发送appWidgetId 的帖子,但我不明白在发送之前我必须在哪里得到它。

我没有找到在没有配置活动的情况下仅获取当前小部件 ID 的方法。

【问题讨论】:

    标签: android widget appwidgetprovider


    【解决方案1】:

    尝试更新

        int a = appWidgetIds.length; 
    

    如果返回 1,那么:

        int yourAppWidgetId = appWidgetIds[0];
    

    应该返回您的 appWidgetId。

    编辑

    没有看到任何代码很难给你正确的答案,但我会给你一个例子。如果您为小部件创建了 RemoteView,则必须为每个 RemoteView 创建一个意图。为此,您可以设置一个 ID,例如:

        RemoteViews remoteViews = new RemoteViews(getApplicationContext()
                    .getPackageName(), 
                        layout.your_widget_layout);
    
            Intent intent1 = new Intent(getApplicationContext(),
                    YourAppWidgetProvider.class);
    
        intent1.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
            intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            intent1.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS,widgetIds);
            intent1.putExtra("ID", "one");
    

    然后创建一个PendingIntent,你可以设置为remoteViews:

        PendingIntent pendingIntent = PendingIntent.getBroadcast(
                    getApplicationContext(), 1, intent1,
                    PendingIntent.FLAG_ONE_SHOT);
    
        remoteViews.setOnClickPendingIntent(R.id.your_widget_button_id_in_xml,
                    pendingIntent);
    

    如果用户按下小部件,您可以在 onReceive() 中获取 id

        String a = intent.getStringExtra("ID");
    

    但这只是一个不完整的例子,还有很多事情要做。如果您阅读本教程,我认为这是一个好方法:

    http://www.android10.org/index.php/articlesgeneralprogramming/315-app-widgets-tutorial

    updateService 有一个很好的例子。

    【讨论】:

    • 如果我已经添加了一个小部件,并尝试添加另一个,我的配置活动启动并生成意图。我的所有小部件都接收到该 Intent,但我无法确定配置了哪个小部件,因为由 Activity 发送的 Intent 包含 app_widget_id,但我没有每个小部件中的小部件 ID 信息以供比较
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    相关资源
    最近更新 更多