安卓:报警的更新的更多小工具 [英] Android : Alarm for update more widget
问题描述
我使用AlarmManager为每秒更新一次一个小部件,但是当加入更多小工具只有最后一个小部件更新。我不understend为什么...
这是code ...
公共类插件扩展AppWidgetProvider { @覆盖
公共无效的onUpdate(上下文的背景下,AppWidgetManager appWidgetManager,INT [] appWidgetIds){
共享preferences preference = context.getShared preferences(MY_ preFERENCE,Context.MODE_PRIVATE);
意向意图=新意图(背景下,vampireServiceWidget.class);
context.startService(意向);
的for(int i = 0; I< appWidgetIds.length;我++){
如果(preference.getLong(倒计时,0)!= 0){
//单方面金正日倒计时
在意向=新意图()的setAction(it.android.dev.thevampirediaries.UPDATE_COUNTDOWN);
in.putExtra(id_widget,appWidgetIds [I]);
in.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
的PendingIntent圆周率= PendingIntent.getBroadcast(上下文,0,在,PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager报警=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
alarm.setRepeating(AlarmManager.ELAPSED_REALTIME,SystemClock.elapsedRealtime(),1000,PI); }}}
到广播这种code
AppWidgetManager经理= AppWidgetManager.getInstance(背景);
RemoteViews远程视窗=新的RemoteViews(context.getPackageName(),R.layout.widgett);
thisWidget = intent.getIntExtra(id_widget,0)
SimpleTimeFormat TF =新SimpleTimeFormat($ $ DD:$ $ HH:$ $ MM:SS $ $);
字符串risultato = tf.format(countdown_data_fine - 新的Date()的getTime()); //为arg0节奏
remoteView.setTextViewText(R.id.textView1,titolo_puntata);
remoteView.setTextViewText(R.id.textView2,risultato);
manager.updateAppWidget(thisWidget,远程视窗)
注释掉循环和不发送部件编号。使用<一个href=\"http://developer.android.com/reference/android/appwidget/AppWidgetManager.html#updateAppWidget%28android.content.ComponentName,%20android.widget.RemoteViews%29\"相对=nofollow>公共无效updateAppWidget(组件名供应商,RemoteViews意见)来更新部件。
试试这个
公共类插件扩展AppWidgetProvider { @覆盖
公共无效的onUpdate(上下文的背景下,AppWidgetManager appWidgetManager,INT [] appWidgetIds){
共享preferences preference = context.getShared preferences(MY_ preFERENCE,Context.MODE_PRIVATE);
意向意图=新意图(背景下,vampireServiceWidget.class);
context.startService(意向);
//的for(int i = 0; I&LT; appWidgetIds.length;我++){
如果(preference.getLong(倒计时,0)!= 0){
//单方面金正日倒计时
在意向=新意图()的setAction(it.android.dev.thevampirediaries.UPDATE_COUNTDOWN);
in.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
的PendingIntent圆周率= PendingIntent.getBroadcast(上下文,0,在,PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager报警=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
alarm.setRepeating(AlarmManager.ELAPSED_REALTIME,SystemClock.elapsedRealtime(),1000,PI); }
}
//}
=============================================== =
AppWidgetManager经理= AppWidgetManager.getInstance(背景);
RemoteViews远程视窗=新的RemoteViews(context.getPackageName(),R.layout.widgett);
组件名thisWidget =新的组件名(背景下,widget.class);
SimpleTimeFormat TF =新SimpleTimeFormat($ $ DD:$ $ HH:$ $ MM:SS $ $);
字符串risultato = tf.format(countdown_data_fine - 新的Date()的getTime());
remoteView.setTextViewText(R.id.textView1,titolo_puntata);
remoteView.setTextViewText(R.id.textView2,risultato);
manager.updateAppWidget(thisWidget,远程视窗)
I use an AlarmManager for update every second a widget but when add more widget only the last widget is updated. I don't understend why...
This is the 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);
} }
}
into the broadcast this 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);
Comment out the for loop and do not send the widget ids. Use public void updateAppWidget (ComponentName provider, RemoteViews views) to update the widget.
Try this
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.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);
}
}
// }
================================================
AppWidgetManager manager = AppWidgetManager.getInstance(context);
RemoteViews remoteView = new RemoteViews(context.getPackageName(),R.layout.widgett);
ComponentName thisWidget = new ComponentName(context, widget.class);
SimpleTimeFormat tf = new SimpleTimeFormat("$dd$ : $HH$: $mm$: $ss$");
String risultato = tf.format(countdown_data_fine - new Date().getTime());
remoteView.setTextViewText(R.id.textView1, titolo_puntata);
remoteView.setTextViewText(R.id.textView2, risultato);
manager.updateAppWidget(thisWidget, remoteView);
这篇关于安卓:报警的更新的更多小工具的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!