我有一個小部件顯示了一個使用TextView的數字時鐘,在這個小部件中我想更新的頻率比xml中允許的30分鐘更頻繁。我看過一些例子,但是像某人一樣幫助我解決特定問題。該小部件配置正確,工作正常,但不會更新,因爲它應該是數字時鐘。小部件上的TextView不能使用OnUpdate方法更新
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
final int N = appWidgetIds.length;
for (int i = 0; i < N; i++) {
int appWidgetId = appWidgetIds[i];
Intent clockIntent = new Intent(context, DeskClock.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
clockIntent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.digitalclock);
views.setOnClickPendingIntent(R.id.gl, pendingIntent);
java.util.Date noteTS = Calendar.getInstance().getTime();
String time = "kk:mm";
views.setTextViewText(R.id.tvTime, DateFormat.format(time, noteTS));
String date = "dd MMMMM yyyy";
views.setTextViewText(R.id.tvDate, DateFormat.format(date, noteTS));
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
的XML安卓僅updateperiodmills每30分鐘更新,但我需要更新或至少每秒設置TextView的像香港專業教育學院使用的主要的應用程序運行方法來完成。任何幫助,非常感激。由於
編輯
public class DigitalClock extends AppWidgetProvider {
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
final int N = appWidgetIds.length;
for (int i = 0; i < N; i++) {
int appWidgetId = appWidgetIds[i];
Intent clockIntent = new Intent(context, DeskClock.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
clockIntent, 0);
final RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.digitalclock);
views.setOnClickPendingIntent(R.id.gl, pendingIntent);
final java.util.Date noteTS = Calendar.getInstance().getTime();
final String time = "kk:mm";
final String date = "dd MMMMM yyyy";
BroadcastReceiver mBroadcastTime = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
views.setTextViewText(R.id.tvTime,
DateFormat.format(time, noteTS));
views.setTextViewText(R.id.tvDate,
DateFormat.format(date, noteTS));
}
};
IntentFilter mTime = new IntentFilter(Intent.ACTION_TIME_TICK);
registerReceiver(mBroadcastTime, mTime);
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
private void registerReceiver(BroadcastReceiver mBroadcastTime,
IntentFilter mTime) {
}
}
這是現在我的課,但我不得不添加此方法:
private void registerReceiver(BroadcastReceiver mBroadcastTime,
IntentFilter mTime) {
}
我該怎麼辦呢?
感謝您的幫助,但它希望我創建一個方法?不知道我該怎麼處理它..? – Timmo 2013-02-18 16:45:29