Can someone look at this code and see why it is locking up the Android
OS. I am receiving force close messages on a.core after about a
minute.
Thank you so much in advance:
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.Timer;
import java.util.TimerTask;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.widget.RemoteViews;
public class HelloWidget extends AppWidgetProvider {
Calendar cal = new GregorianCalendar();
int month = cal.get(Calendar.MONTH);
int year = cal.get(Calendar.YEAR);
int day = cal.get(Calendar.DAY_OF_MONTH);
//@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;
DateFormat format =
new SimpleDateFormat("HH:mm:ss",Locale.getDefault());
//DateFormat format =
SimpleDateFormat.getTimeInstance(SimpleDateFormat.MEDIUM,
//Locale.getDefault());
public MyTime(Context context, AppWidgetManager appWidgetManager)
{
this.appWidgetManager = appWidgetManager;
remoteViews = new RemoteViews(context.getPackageName(),
R.layout.main);
thisWidget = new ComponentName(context,
HelloWidget.class);
remoteViews.setTextViewText(R.id.widget_dateView,
day + "." + (month + 1) + "." + year);
}
@Override
public void run() {
remoteViews.setTextViewText(R.id.widget_textview,
format.format(new Date()));
appWidgetManager.updateAppWidget(thisWidget, remoteViews);
}
}
//@Override
public void onReceive(Context context, Intent intent) {
// v1.5 fix that doesn't call onDelete Action
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);
}
}
}
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en