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>