B
babsitz
Neues Mitglied
- 0
Hallo zusammen,
ich habe ein Widget programmiert, welches mir das aktuelle Datum und die aktuelle Zeit auf dem Homescreen anzeigt. Klappt allerdings nur teilweise, wenn ich das Widget dem Bildschirm hinzufüge wird die Zeit aktualisiert. Aber dann passiert nichts mehr.
Könnt ihr mal über meinen Code schauen? Ich finde den Fehler nicht!
An was kann das liegen?
Grüße
Jörg
ich habe ein Widget programmiert, welches mir das aktuelle Datum und die aktuelle Zeit auf dem Homescreen anzeigt. Klappt allerdings nur teilweise, wenn ich das Widget dem Bildschirm hinzufüge wird die Zeit aktualisiert. Aber dann passiert nichts mehr.
Könnt ihr mal über meinen Code schauen? Ich finde den Fehler nicht!
Code:
public class MyWidgetProvider extends AppWidgetProvider {
private static final SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
Timer timer = new Timer();
timer.scheduleAtFixedRate(new MyTime(context, appWidgetManager), 1, 1000);
}
private class MyTime extends TimerTask {
RemoteViews remoteViews;
AppWidgetManager appWidgetManager;
ComponentName thisWidget;
String date = sdf.format(new Date().getTime());
public MyTime(Context context, AppWidgetManager appWidgetManager) {
this.appWidgetManager = appWidgetManager;
remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
thisWidget = new ComponentName(context, MyWidgetProvider.class);
}
@Override
public void run() {
remoteViews.setTextViewText(R.id.update,
"Time = " + date);
appWidgetManager.updateAppWidget(thisWidget, remoteViews);
}
}
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(action)) {
final int appWidgetId = intent.getExtras().getInt(
AppWidgetManager.EXTRA_APPWIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID);
if (appWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID) {
this.onDeleted(context, new int[] { appWidgetId });
}
} else {
super.onReceive(context, intent);
}
}
}
An was kann das liegen?
Grüße
Jörg