android开发笔记之widget UI 更新问题的一个样例
来源:互联网 发布:数据挖掘技术应用实例 编辑:程序博客网 时间:2024/06/05 11:53
做了几个widget,觉得widget的UI更新是一个常用的功能,下面就做了一个笔记:
读者,先看明白下面这篇博文:
Android Widget 桌面数字时钟(DigtalClockWidget)实例
http://blog.csdn.net/ouyang_peng/article/details/8820506
下面是我的一个样例,可以查看一下:
1.
package com.android.alarmclock;//hongyu hexiaoming digital clock aolixing 20140227 startimport android.app.Service;import java.util.Timer; import java.util.TimerTask; import android.appwidget.AppWidgetManager; import android.content.ComponentName; import android.widget.RemoteViews;import android.content.Intent;import android.os.IBinder; import com.android.deskclock.R;import android.util.Log;import java.util.Calendar;import android.text.format.Time;public class HyDigitalWidgetUpdateService extends Service {private Timer timer; private TimerTask timerTask = new TimerTask() { @Override public void run() { updateDigitalWidgetUI();} }; @Override public void onCreate() { super.onCreate(); timer = new Timer(); timer.schedule(timerTask, 0, 500); } @Override public IBinder onBind(Intent intent) {return null; } @Override public void onDestroy() { super.onDestroy();timer.cancel(); timer = null; } private void updateDigitalWidgetUI() {RemoteViews clock = new RemoteViews(getPackageName(), R.layout.digital_appwidget);Log.i("digital_debug","updateDigitalWidgetUI");Calendar calendar = Calendar.getInstance(); int hour = calendar.get(Calendar.HOUR_OF_DAY);int minute = calendar.get(Calendar.MINUTE); //Time time = new Time(); //time.setToNow(); //int hour = time.hour; //int minute = time.minute;Log.i("digital_debug","updateDigitalWidgetUI---hour:"+hour);Log.i("digital_debug","updateDigitalWidgetUI---minute:"+minute);//if(hour > 12){if(calendar.get(Calendar.AM_PM) == 0){Log.i("digital_debug","updateDigitalWidgetUI---am:");clock.setImageViewResource(R.id.time_am_or_pm, R.drawable.hy_digital_widget_time_am);}else{Log.i("digital_debug","updateDigitalWidgetUI---pm:");clock.setImageViewResource(R.id.time_am_or_pm, R.drawable.hy_digital_widget_time_pm);}int hour_1 = hour/10;int hour_2 = hour%10;int minute_1 = minute/10;int minute_2 = minute%10;switch (hour_1) {case 0:clock.setImageViewResource(R.id.time_hour_1, R.drawable.hy_digital_widget_time_0);break;case 1:clock.setImageViewResource(R.id.time_hour_1, R.drawable.hy_digital_widget_time_1);break;case 2:clock.setImageViewResource(R.id.time_hour_1, R.drawable.hy_digital_widget_time_2);break;case 3:clock.setImageViewResource(R.id.time_hour_1, R.drawable.hy_digital_widget_time_3);break;case 4:clock.setImageViewResource(R.id.time_hour_1, R.drawable.hy_digital_widget_time_4);break;case 5:clock.setImageViewResource(R.id.time_hour_1, R.drawable.hy_digital_widget_time_5);break;case 6:clock.setImageViewResource(R.id.time_hour_1, R.drawable.hy_digital_widget_time_6);break;case 7:clock.setImageViewResource(R.id.time_hour_1, R.drawable.hy_digital_widget_time_7);break;case 8:clock.setImageViewResource(R.id.time_hour_1, R.drawable.hy_digital_widget_time_8);break;case 9:clock.setImageViewResource(R.id.time_hour_1, R.drawable.hy_digital_widget_time_9);break;default:break;}switch (hour_2) {case 0:clock.setImageViewResource(R.id.time_hour_2, R.drawable.hy_digital_widget_time_0);break;case 1:clock.setImageViewResource(R.id.time_hour_2, R.drawable.hy_digital_widget_time_1);break;case 2:clock.setImageViewResource(R.id.time_hour_2, R.drawable.hy_digital_widget_time_2);break;case 3:clock.setImageViewResource(R.id.time_hour_2, R.drawable.hy_digital_widget_time_3);break;case 4:clock.setImageViewResource(R.id.time_hour_2, R.drawable.hy_digital_widget_time_4);break;case 5:clock.setImageViewResource(R.id.time_hour_2, R.drawable.hy_digital_widget_time_5);break;case 6:clock.setImageViewResource(R.id.time_hour_2, R.drawable.hy_digital_widget_time_6);break;case 7:clock.setImageViewResource(R.id.time_hour_2, R.drawable.hy_digital_widget_time_7);break;case 8:clock.setImageViewResource(R.id.time_hour_2, R.drawable.hy_digital_widget_time_8);break;case 9:clock.setImageViewResource(R.id.time_hour_2, R.drawable.hy_digital_widget_time_9);break;default:break;}switch (minute_1) {case 0:clock.setImageViewResource(R.id.time_minute_1, R.drawable.hy_digital_widget_time_0);break;case 1:clock.setImageViewResource(R.id.time_minute_1, R.drawable.hy_digital_widget_time_1);break;case 2:clock.setImageViewResource(R.id.time_minute_1, R.drawable.hy_digital_widget_time_2);break;case 3:clock.setImageViewResource(R.id.time_minute_1, R.drawable.hy_digital_widget_time_3);break;case 4:clock.setImageViewResource(R.id.time_minute_1, R.drawable.hy_digital_widget_time_4);break;case 5:clock.setImageViewResource(R.id.time_minute_1, R.drawable.hy_digital_widget_time_5);break;case 6:clock.setImageViewResource(R.id.time_minute_1, R.drawable.hy_digital_widget_time_6);break;case 7:clock.setImageViewResource(R.id.time_minute_1, R.drawable.hy_digital_widget_time_7);break;case 8:clock.setImageViewResource(R.id.time_minute_1, R.drawable.hy_digital_widget_time_8);break;case 9:clock.setImageViewResource(R.id.time_minute_1, R.drawable.hy_digital_widget_time_9);break;default:break;}switch (minute_2) {case 0:clock.setImageViewResource(R.id.time_minute_2, R.drawable.hy_digital_widget_time_0);break;case 1:clock.setImageViewResource(R.id.time_minute_2, R.drawable.hy_digital_widget_time_1);break;case 2:clock.setImageViewResource(R.id.time_minute_2, R.drawable.hy_digital_widget_time_2);break;case 3:clock.setImageViewResource(R.id.time_minute_2, R.drawable.hy_digital_widget_time_3);break;case 4:clock.setImageViewResource(R.id.time_minute_2, R.drawable.hy_digital_widget_time_4);break;case 5:clock.setImageViewResource(R.id.time_minute_2, R.drawable.hy_digital_widget_time_5);break;case 6:clock.setImageViewResource(R.id.time_minute_2, R.drawable.hy_digital_widget_time_6);break;case 7:clock.setImageViewResource(R.id.time_minute_2, R.drawable.hy_digital_widget_time_7);break;case 8:clock.setImageViewResource(R.id.time_minute_2, R.drawable.hy_digital_widget_time_8);break;case 9:clock.setImageViewResource(R.id.time_minute_2, R.drawable.hy_digital_widget_time_9);break;default:break;}AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(getApplicationContext()); ComponentName componentName = new ComponentName(getApplicationContext(), DigitalAppWidgetProvider.class);appWidgetManager.updateAppWidget(componentName, clock); }}//hongyu hexiaoming digital clock aolixing 20140227 end
2.
public class DigitalAppWidgetProvider extends AppWidgetProvider { private static final String TAG = "DigitalAppWidgetProvider";//hongyu hexiaoming digital clock aolixing 20140227 start@Overridepublic void onDisabled(Context context) {// TODO Auto-generated method stubcontext.stopService(new Intent(context, HyDigitalWidgetUpdateService.class)); }@Overridepublic void onEnabled(Context context) {// TODO Auto-generated method stubsuper.onEnabled(context);context.startService(new Intent(context, HyDigitalWidgetUpdateService.class)); }//hongyu hexiaoming digital clock aolixing 20140227 end
1.有用的相关资料:
这是一个widget开发的样例,可以看明白,就懂得widget开发的基本过程了:
android widget 开发实例 : 桌面便签程序的实现详解和源码 (上)
http://blog.csdn.net/silenceburn/article/details/6093074
0 0
- android开发笔记之widget UI 更新问题的一个样例
- android开发之widget控件突然停止更新的原因
- Android 开发之实时更新 App Widget
- Android 开发之实时更新 App Widget
- Android 开发之实时更新 App Widget
- android service 更新widget UI
- Android开发笔记:widget
- Android开发之通过Handler的post方法更新UI
- Android 开发之简单的Widget
- Android之UI主线程更新问题
- android Widget添加过程和android添加widget不更新的问题分析解决
- android Widget添加过程和android添加widget不更新的问题分析解决
- Android开发学习笔记之sdk更新问题
- Android UI更新问题
- Android系统UI设计之:Widget控件
- android 关于更新UI的问题
- android关于UI界面更新的问题
- Android 学习笔记之Widget
- Unlang
- gSoap访问Web Service
- html5兼容ie
- 观点:操作系统是推动网络技术发展和大规模普及的中流砥柱
- 利用NSCache提升效率
- android开发笔记之widget UI 更新问题的一个样例
- 【OpenCV】访问Mat中每个像素的值(新)
- 3.按键控制LED灯亮灭
- android模块编译环境创建
- __cplusplus区分c编译的还是c++编译的
- 新浪 sae 上传图片 保存缩略图
- ScrollView ListView GridView
- 万维网25岁了
- SQL Server 查询性能优化——创建索引原则(一)