android widget内容显示以及自动更新
天人人 2014-05-30 10:37:12 我编写的AppWidgetProvider,然后通过闹钟在service中更新textview显示时间,可是我的widget不显示时间,每次走到onstart里,更新后widget还是不显示内容。
就是在桌面生成了widget,但是是透明的,看不到widget的内容。
有人能帮忙看下吗?谢谢!
public class MyAppWidgetProvider extends AppWidgetProvider {
public static final String SHOW_TIME = "com.example.my_widget.showtime";
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
System.out.println("zxl---onUpdate");
Time time = new Time();
time.setToNow();
Intent intent = new Intent(context, UpdateService.class);
PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC, time.toMillis(true), 60*1000, pendingIntent);
}
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
System.out.println("zxl---onReceive--->"+context.getPackageName());
}
}
public class UpdateService extends Service{
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onStart(Intent intent, int startId) {
System.out.println("zxl---UpdateService---onStart--->");
super.onStart(intent, startId);
RemoteViews views = new RemoteViews(getPackageName(),
R.layout.firstappwidget);
java.text.DateFormat df = new java.text.SimpleDateFormat("hh:mm:ss");
views.setTextViewText(R.id.tvMsg, "当前时间:" + df.format(new Date()));
Intent intent_t = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
intent_t, 0);
views.setOnClickPendingIntent(R.id.tvMsg, pendingIntent);
AppWidgetManager.getInstance(this).updateAppWidget(
new ComponentName(this, MyAppWidgetProvider.class), views);
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
System.out.println("onDestory");
super.onDestroy();
}
}