Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何向特定的appwidget广播意图?_Android_Android Widget_Android Intent - Fatal编程技术网

Android 如何向特定的appwidget广播意图?

Android 如何向特定的appwidget广播意图?,android,android-widget,android-intent,Android,Android Widget,Android Intent,我正在创建一个appwidget,它需要在特定的时间间隔内更新。为此,我使用了AlarmManager 我想让报警运行AppWidgetProvider中的onUpdate()方法 //Create the intent Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE); pendingIntent = PendingIntent.getBroadcast(context, 0, in

我正在创建一个
appwidget
,它需要在特定的时间间隔内更新。为此,我使用了
AlarmManager

我想让报警运行
AppWidgetProvider
中的
onUpdate()
方法

    //Create the intent
    Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
    pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);              

    //Schedule the alarm        
    AlarmManager manager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
    manager.setRepeating(AlarmManager.RTC, startAlarmCal.getTime().getTime(), 1000 * 60, pendingIntent);
然而,这个意图会导致所有小部件的更新。我只想以某种方式将此意图发送到我自己的appwidget。我该怎么做呢?

再一次:

updatePeriodMillis此AppWidget希望更新的频率(以毫秒为单位)


使用自定义意图发送到您的小部件。您可以在manifest.xml中注册它们。如果有许多不同的小部件,则不能更新指定的小部件ID,而是更新小部件的类型

<receiver
        android:name=".widget.WidgetProvider"
        android:label="1x1">
        <service
            android:name=".extra.WidgetProvider$WidgetUpdateService1x1" />
        <intent-filter>
            <action
                android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            <action
                android:name="nitro.blub.APPWIDGET_MANUEL_UPDATE" />
        </intent-filter>
        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/widget_info" />

    </receiver>

您可以尝试添加以下内容(当然,为了满足您的需要,会稍微修改):


希望这有帮助。

??你在回答另一个问题吗?我需要使用一个闹钟,因为我需要一个特定的updatepattern。因此,我需要提交一个broadcastintent,但这个intent也会触发所有其他小部件。AppWidgetProviderInfo的updatePeriodMillis将为您提供一个特定的更新模式,这就是它的用途!根据文档:此AppWidget希望更新的频率(以毫秒为单位)。是的,但不能低于30分钟一次,您可以指定确切的时间。不管怎样,我知道我在做什么,而你在这方面并没有真正的帮助。如果你想得到有用的答案,你需要在你的问题上精确。
// Change the text in the widget
RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.main);
ComponentName thisWidget = new ComponentName(context, [Calling_class].class);

// Run update code here. e.g: //////////////
updateViews.setTextViewText(R.id.text, now);
////////////////////////////////////////////

appWidgetManager.updateAppWidget(thisWidget, updateViews);