当前位置:  编程技术>移动开发

基于Android AppWidgetProvider的使用介绍

    来源: 互联网  发布时间:2014-10-14

    本文导语:  AppWidgetProvider 用来在HOME页面显示插件 实现步骤:1、为AppWidget提供一个元布局文件AppWigdetProvider_Provider.xml,用来显示Widget的界面。2、创建一个类继承自AppWidgetProvider,并覆写里面的相关的方法。3、为WidgetProvider创建一个引用的布...

AppWidgetProvider 用来在HOME页面显示插件

实现步骤:
1、为AppWidget提供一个元布局文件AppWigdetProvider_Provider.xml,用来显示Widget的界面。
2、创建一个类继承自AppWidgetProvider,并覆写里面的相关的方法。
3、为WidgetProvider创建一个引用的布局文件,或者直接用main.xml。
4、在程序中注册Manifest.xml。

代码如下:

1、在res/xml/文件夹下创建AppWigdetProvider_Provider.xml文件

代码如下:



2、修改MainActivity继承自AppWidgetProvider并覆写里面的一些方法

代码如下:

public class MainActivity extends AppWidgetProvider {

 @Override
 public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
  super.onUpdate(context, appWidgetManager, appWidgetIds);
  Timer timer = new Timer();
  timer.scheduleAtFixedRate(new LYTimeTask(context, appWidgetManager), 1, 50000);
 }

 private class LYTimeTask extends TimerTask {
  RemoteViews remoteViews;
  AppWidgetManager appWidgetManager;
  ComponentName widget;

  @Override
  public void run() {
   Date date = new Date();
   Calendar calendar = new GregorianCalendar(2013, 07, 24);
   long days = (calendar.getTimeInMillis() - date.getTime()) / 1000 / 86400;
   remoteViews.setTextViewText(R.id.worldcup, "距离宝贝生日" + days + "天");
   appWidgetManager.updateAppWidget(widget, remoteViews);
  }

  public LYTimeTask(Context context, AppWidgetManager appWidgetManger) {
   super();
   this.appWidgetManager = appWidgetManger;
   remoteViews = new RemoteViews(context.getPackageName(), R.layout.activity_main);
   widget = new ComponentName(context, MainActivity.class);
  }
 };
}



3、为Widget创建一个显示用的布局文件:main.xml

代码如下:


  



4、修改程序自动生成的清单文件。在AndroidManifest.xml中,声明上述的AppWidgetProvider的子类是一个Receiver,并且:

(1)、该Receiver的intent-filter的Action必须包含“android.appwidget.action.APPWIDGET_UPDATE”;

(2)、该Receiver的meta-data为“android.appwidget.provider”,并用一个xml文件来描述布局属性。

代码如下:

 
  
    
      
    

    
  

运行程序:进入WIDGETS页面,可将Widget添加到HOME页

在AppWidgetProvider类中,还有其它相关的方法

代码如下:

public class WidgetProvider extends AppWidgetProvider {

    // 每接收一次广播消息就调用一次,使用频繁
    public void onReceive(Context context, Intent intent) {
        super.onReceive(context, intent);
    }

    // 每次更新都调用一次该方法,使用频繁
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        super.onUpdate(context, appWidgetManager, appWidgetIds);
    }

    // 每删除一个就调用一次
    public void onDeleted(Context context, int[] appWidgetIds) {
        super.onDeleted(context, appWidgetIds);
    }

    // 当该Widget第一次添加到桌面是调用该方法,可添加多次但只第一次调用
    public void onEnabled(Context context) {
        super.onEnabled(context);
    }

    // 当最后一个该Widget删除是调用该方法,注意是最后一个
    public void onDisabled(Context context) {
        super.onDisabled(context);
    }
}


    
 
 

您可能感兴趣的文章:

  • Android中的android:layout_weight使用详解
  • android开发教程之switch控件使用示例
  • Android 开机广播的使用及配置
  • Android中gravity与layout_gravity的使用区别分析
  • Android中gravity与layout_gravity的使用区别分析 iis7站长之家
  • Android中AnimationDrawable使用的简单实例
  • android WakeLock使用方法代码实例
  • android 使用虚拟机安装apk(图文教程)
  • android自动安装apk代码实例(不使用apk安装器安装)
  • Android中回调接口的使用介绍
  • android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法
  • android 弹出提示框的使用(图文实例)
  • android开发教程之获取使用当前api的应用程序名称
  • android开发教程之系统资源的使用方法 android资源文件
  • 使用python编写批量卸载手机中安装的android应用脚本
  • android教程使用webview访问https的url处理sslerror示例
  • Linux/Android竞争情况下使用flock加锁后文件被毁坏
  • android开发教程之使用looper处理消息队列
  • android intent使用定义标题
  • 在android开发中尽量不要使用中文路径的问题详解
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)
  • Android瀑布流实例 android_waterfall
  • Android开发需要的几点注意事项总结
  • Android系统自带样式 (android:theme)
  • android 4.0 托管进程介绍及优先级和回收机制
  • Android网络共享软件 Android Wifi Tether
  • Android访问与手机通讯相关类的介绍
  • Android 图标库 Android GraphView
  • Android及andriod无线网络Wifi开发的几点注意事项
  • 轻量级Android开发工具 Android Tools
  • Android 2.3 下StrictMode介绍
  • Android 开发环境 Android Studio
  • IDEA的Android开发插件 idea-android
  • Android手机事件提醒 Android Notifier
  • XBMC的Android客户端 android-xbmcremote
  • Android小游戏 Android Shapes
  • Android电池监控 Android Battery Dog
  • android开发:“android:WindowTitle”没有对应项no resource
  • Android 上类似IOS 的开关控件。 Android ToggleButton
  • Android 将 android view 的位置设为右下角的解决方法
  • Android 2D游戏引擎 Android Angle


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3