Android: Alarm für Update mehr Widget

Ich verwende einen AlarmManager, um jedes zweite Widget zu aktualisieren. Wenn Sie jedoch weitere Widgets hinzufügen, wird nur das letzte Widget aktualisiert. Ich verstehe nicht warum ...

Das ist der Code ...

<code>public class widget extends AppWidgetProvider {

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) {
        SharedPreferences preference = context.getSharedPreferences("MY_PREFERENCE", Context.MODE_PRIVATE);
        Intent intent = new Intent(context,vampireServiceWidget.class);
        context.startService(intent);
        for(int i=0; i<appWidgetIds.length;i++){        
            if(preference.getLong("countdown", 0)!=0){
                //Parte il countdown
                Intent in = new Intent().setAction("it.android.dev.thevampirediaries.UPDATE_COUNTDOWN");
                in.putExtra("id_widget", appWidgetIds[i]);
                in.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                PendingIntent pi = PendingIntent.getBroadcast(context, 0, in, PendingIntent.FLAG_UPDATE_CURRENT);
                AlarmManager alarm = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
                alarm.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(), 1000, pi); 

                    }       }

}
</code>

in die Sendung diesen Code

<code>    AppWidgetManager manager = AppWidgetManager.getInstance(context);
            RemoteViews remoteView = new RemoteViews(context.getPackageName(),R.layout.widgett);
         thisWidget=intent.getIntExtra("id_widget", 0)
            SimpleTimeFormat tf = new SimpleTimeFormat("$dd$ : $HH$: $mm$: $ss$");    
            String risultato = tf.format(countdown_data_fine - new Date().getTime()); // arg0 tempo
            remoteView.setTextViewText(R.id.textView1, titolo_puntata);
            remoteView.setTextViewText(R.id.textView2, risultato);
            manager.updateAppWidget(thisWidget, remoteView);
</code>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage