AppWidgetProvider 用来在HOME页面显示插件

实现步调:
1、为AppWidget供给一个元布局文件AppWigdetProvider_Provider.xml,用来显示Widget的界面。
2、创建一个类持续自AppWidgetProvider,并覆写里面的相干的办法。
3、为WidgetProvider创建一个引用的布局文件,或者直接用main.xml。
4、在法度中注册Manifest.xml。

代码如下:

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

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
  android:initialLayout="@layout/main"  <!-- android:initialLayout 设置引用的布局文件 -->
  android:minHeight="50dip"
  android:minWidth="50dip"
  android:PeriodMillis="5000" > <!-- 设置更新时候,单位为毫秒 -->

</appwidget-provider>
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.AppWidget(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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:background="@drawable/worldcup"
  android:orientation="vertical" >
  <TextView
    android:id="@+id/babybirthday"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/message"
    android:textSize="12px"
    android:textColor="#ff0000" />
</LinearLayout>

4、批改法度主动生成的清单文件。

<application
  android:allowBackup="true"
  android:icon="@drawable/ic_launcher"
  android:label="@string/app_name"
  android:theme="@style/AppTheme" >
  <receiver
    android:name=".MainActivity"
    android:label="@string/app_name" >
    <intent-filter> 
      <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /><!--广播接管过滤器-->
    </intent-filter>

    <meta-data
      android:name="android.appwidget.provider"
      android:resource="@xml/AppWigdetProvider_Provider" /><!--AppWidgetProvider引用的Provider文件-->
  </receiver>
</application>

运行法度:进入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 AppWidgetProvider应用相关推荐

  1. android AppWidgetProvider开发桌面小工具

    什么是桌面小工具  就是你写好代码后 双指缩放桌面屏幕(三星手机出现小组件,华为出现窗口小工具)点击之后会出现你继承AppWidgetProvider所编写的界面 效果: 代码: /** * Impl ...

  2. (转)android AppWidgetProvider 定时刷新问题

    AppWidgetProvider是专门用来制作android桌面组件的东东 本来想做一个小时钟 但是在定时刷新的时候遇到了问题 很多资料和书上的方法是 在onUpdate()方法中 用Intent请 ...

  3. android AppWidgetProvider 定时刷新问题

    原文地址:: http://blog.csdn.net/maydie1989/article/details/6460163 相关网帖 1.AppWidgetProvider使用问题----http: ...

  4. 电子投票算法_电子投票的历史不短

    电子投票算法 As we close in on the 2020 elections, here's an in-depth look at the history of electronic vo ...

  5. 关于调用系统相机以及压缩照片

    style="DISPLAY: none" frameborder="0"> style="Z-INDEX: 9999; POSITION: a ...

  6. Android中AppWidget的分析与应用:AppWidgetProvider .

    from: http://blog.csdn.net/thl789/article/details/7887968 本文从开发AppWidgetProvider角度出发,看一个AppWidgetPrv ...

  7. android service什么时候销毁,阳光沙滩-android 通过AppWidgetProvider 启动的Service会自动销毁问题...

    想写一个根据电量来切换图片的AppWidget,由于监视电量需要另起一个service,我的想法是在添加第一个widget时启动service,在删除最后一个时结束service. layout< ...

  8. Android之高仿墨迹天气桌面组件(AppWidgetProvider) .

    Android之高仿墨迹天气桌面组件(AppWidgetProvider) . 点击:382 发布时间:2012-10-03 更多0 相信墨迹天气,大家都见过,他在时间显示和天气界面上,很吸引人,今天 ...

  9. 基于android的天气预报的设计与实现

    目录 应用开发技术及开发平台介绍 应用需求分析 应用功能设计及其描述 应用UI展示 ①开发技术: 本系统是采用面向对象的软件开发方法,基于Android studio开发平台,以Android作为本系 ...

最新文章

  1. Oracle的SQL语句
  2. 业务工作流平台设计(九)
  3. 如何在 SAP BTP 平台 ABAP 编程环境里消费基于 SOAP 的 Web Service
  4. 《TCP/IP详解》学习笔记(七):广播和多播、IGMP协议
  5. 项目中的设计模式【适配器模式】
  6. 波士顿房价数据集 Boston house prices dataset
  7. 【笔记】感谢《梦幻模拟战》的Unity+Spine资源,同人模式开启
  8. linux服务器root密码忘记怎么办,Linux忘记root密码怎么办?
  9. 关于工信部191号文《App违法违规收集使用个人信息行为认定方法》的评估
  10. 17计算机七班班级活动,2017班级主题活动方案设计
  11. mysql 64 免安装_MYSQL 免安装版(windows 7/64)
  12. 分布式文件存储系统MinIO入门教程
  13. 移动硬盘安装ubuntu20.04.5(重装无数次的一个教程)
  14. linux图片格式转换工具,在Linux系统上安装和使用Converseen批量图像转换器的方法...
  15. matlab 多子图_matlab 多子图的绘画
  16. spring boot修改启动图标和启动成功提示
  17. 支付退款流程设计_如何设计订单系统?不妨看看这篇文章
  18. 字节大牛教你手撕Android学习,灵魂拷问
  19. 核密度估计与自适应带宽的核密度估计
  20. Bugtags:移动时代首选 Bug 管理系统

热门文章

  1. 十二届 - CSU 1803 :2016(同余定理)
  2. C++中delete和delete[]的区别
  3. Vijos——T 1082 丛林探险
  4. tablib把数据导出为Excel、JSON、CSV等格式的Py库(写入数据并导出exl)
  5. Android UI开发第二十七篇——实现左右划出菜单
  6. 一段始终保持在最底部的div css代码
  7. C# default關鍵字
  8. 关闭 Windows Server 2008 用户权限控制(UAC)
  9. python3 getopt用法
  10. 错排、卡特兰数、斯特林数小结