Android开发之AppWidget应用(二)
来源:互联网 发布:kakakaoo的淘宝网店 编辑:程序博客网 时间:2024/05/16 18:02
转自:http://blog.csdn.net/ch_984326013/article/details/6664981
今天我们接着讲AppWidget应用!今天我们做了个实例,用于显示当前时间,下面来看下运行效果:
今天就以该程序为例来讲解,开发过程。
1、创建Android项目,命名为AppWidget;
2、在res目录下新建一个目录为xml,在该目录下新建一个xml文件,名称为appwidget_provider.xml。内容代码如下:
- <?xml version="1.0" encoding="utf-8"?>
- <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
- android:minWidth="294dp"
- android:minHeight="72dp"
- android:updatePeriodMillis="86400000"
- android:initialLayout="@layout/appwidget">
- </appwidget-provider>
3、在布局文件中新建一个布局文件,命名为appwidget,该内容代码如下:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <AnalogClock
- android:id="@+id/myAnalogClock"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content">
- </AnalogClock>
- <TextView
- android:id="@+id/myText"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
- </LinearLayout>
4、新建一个类,该类继承于AppWidgetProvider。在该类中实现了项目的全过程,该类具体代码如下:
- public class AppWidgetProdiverDemo extends AppWidgetProvider{
- //声明年月日时分
- int mYear;
- int mMonth;
- int mDay;
- int mHour;
- int mMinutes;
- String str;
- @Override
- public void onDeleted(Context context, int[] appWidgetIds) {
- // TODO Auto-generated method stub
- super.onDeleted(context, appWidgetIds);
- }
- @Override
- public void onDisabled(Context context) {
- // TODO Auto-generated method stub
- super.onDisabled(context);
- }
- @Override
- public void onEnabled(Context context) {
- // TODO Auto-generated method stub
- super.onEnabled(context);
- }
- @Override
- public void onReceive(Context context, Intent intent) {
- // TODO Auto-generated method stub
- super.onReceive(context, intent);
- }
- //更新界面函数
- @Override
- public void onUpdate(Context context, AppWidgetManager appWidgetManager,
- int[] appWidgetIds) {
- // TODO Auto-generated method stub
- super.onUpdate(context, appWidgetManager, appWidgetIds);
- Timer timer=new Timer();
- timer.scheduleAtFixedRate(new MyTime(context,appWidgetManager), 1, 60000);
- }
- //定义一个类,用于显示时间
- class MyTime extends TimerTask{
- RemoteViews remoteViews;
- AppWidgetManager appWidgetManager;
- ComponentName thisWidget;
- public MyTime(Context context, AppWidgetManager appWidgetManager) {
- // TODO Auto-generated constructor stub
- this.appWidgetManager=appWidgetManager;
- remoteViews=new RemoteViews(context.getPackageName(),R.layout.appwidget);
- thisWidget=new ComponentName(context, AppWidgetProdiverDemo.class);
- }
- @Override
- public void run() {
- // TODO Auto-generated method stub
- try{
- long time=System.currentTimeMillis();
- Calendar mCalendar=Calendar.getInstance();
- mCalendar.setTimeInMillis(time);
- mYear=mCalendar.get(Calendar.YEAR);
- mMonth=mCalendar.get(Calendar.MONTH);
- mDay=mCalendar.get(Calendar.DAY_OF_MONTH);
- mHour=mCalendar.get(Calendar.HOUR_OF_DAY);
- mMinutes=mCalendar.get(Calendar.MINUTE);
- str=mYear+"年"+mMonth+"月"+mDay+"日"+mHour+"时"+mMinutes+"分";
- remoteViews.setTextViewText(R.id.myText,str);
- appWidgetManager.updateAppWidget(thisWidget, remoteViews);
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- }
- }
5、这里还需要注意,我们开发AppWidget需要在AndroidManifest.xml中注册相关信息,在本项目中,需要注册信息如下:
- <receiver android:name="AppWidgetProdiverDemo">
- <intent-filter>
- <action android:name="android.appwidget.action.APPWIDGET_UPDATE"></action>
- </intent-filter>
- <meta-data android:name="android.appwidget.provider"
- android:resource="@xml/appwidget_provider" />
- </receiver>
- Android开发之AppWidget应用(二)
- Android开发之AppWidget应用(二)
- Android开发之AppWidget应用(一)
- Android开发之AppWidget应用(一)
- Android开发之AppWidget应用(一)
- AppWidget应用(二)---PendingIntent 之 getActivity
- AppWidget应用(二)---PendingIntent 之 getActivity
- Android之AppWidget 开发浅析
- Android之AppWidget 开发浅析
- android应用开发(三)—— Appwidget
- AppWidget应用小部件详解(二)
- Android之AppWidget桌面小部件开发
- AppWidget开发实例讲解(二)
- AppWidget开发实例讲解(二)
- Android开发之PopupWindow应用(二)
- Android开发之倒计时应用(二)
- appwidget之二
- AppWidget应用(三)---PendingIntent 之 getBroadcast
- 邀请vc高手参与开发纯文本人工智能
- sangoma卡驱动教程的完整汇总
- Android开发之AppWidget应用(一)
- Qtablewidget / Qtableview
- PHP常见函数整理
- Android开发之AppWidget应用(二)
- asp.net组件开发(C #) 一
- asp.net(VB)中使用正则获取图片地址并进行下载.
- asp.net组件开发(C #) 二 代码解析
- Android开发之多点触控
- linux系统网络设置
- asp.net组件开发(C #) 三 一个复杂点的控件
- 用指针方式实现strcat(s,t)函数
- 锁屏界面