le code semble bien, mais pas sûr de la raison pour laquelle la fonction onreceived de AppWidgetProvider ont une action intentionnelle nulle et aucune donnée supplémentaire que l'application met.Widget android homescreen AppWidgetProvider onreceived fonction d'intention d'action et les extras sont partis/null
Code AppWidgetProvider:
public class Widget_2_6 extends AppWidgetProvider{
private AlarmManager alarm;
@Override
public void onReceive(Context context, Intent intent)
{
Log.e("onReceive -- Widget_2_6", "onReceive -- Widget_2_6: action: " + intent.getAction());
boolean from_boot = intent.getBooleanExtra(BootCompleteBroadcastReceiver.FROM_BOOT, false);
if(from_boot)
{
Log.e("onReceive -- Widget_2_6", "onReceive -- Widget_2_6: onupdate start");
Log.e("onReceive -- Widget_2_6", "onReceive -- Widget_2_6: onupdate end");
}
else
{
Log.e("onReceive -- Widget_2_6", "onReceive -- Widget_2_6 not from boot: onupdate start");
Log.e("onReceive -- Widget_2_6", "onReceive -- Widget_2_6 not from boot: onupdate end");
}
super.onReceive(context, intent);
}
BootCompleteBroadcastReceiver:
public final static String FROM_BOOT = "FROM_BOOT";
cn = new ComponentName(context, Widget_2_6.class);
Intent intent_widget_2_6 = new Intent(context, Widget_2_6.class);
intent.setAction(INTENT_FROM_BOOT);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, manager.getAppWidgetIds(cn));
intent.putExtra(FROM_BOOT, true);
context.sendBroadcast(intent_widget_2_6);
AndroidManifest.xml:
<receiver android:name="com.example.linktogoogleplay.Widget_2_6">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"></action>
<action android:name="com.example.linktogoogleplay.FROM_BOOT"></action>
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/my_widget_provider_2_6" />
</receiver>
J'ai essayé d'utiliser l'action android.appwidget.action.APPWIDGET_UPDATE intention, mais encore l'action recevied null et pas de données supplémentaires que l'application met. (NOTE :) doit mettre à jour le widget avec les dernières données au démarrage et ne pas utiliser les anciennes données. le même bootboradcast récepteur fonctionnera quand l'heure est changée (depuis son besoin d'obtenir le dernier du serveur)
le bootBroadcastreceiver fonctionne comme il peut obtenir l'action de timechange juste la partie appwidgetprovider ne fonctionne pas.
s'il vous plaît laissez-moi savoir si quelque chose manque.