西伯利亚雪橇犬,赛尔号加鲁德,2009金瓶梅
appwidgetprovider 用来在home页面显示插件
实现步骤:
1、为appwidget提供一个元布局文件appwigdetprovider_provider.xml,用来显示widget的界面。
2、创建一个类继承自appwidgetprovider,并覆写里面的相关的方法。
3、为widgetprovider创建一个引用的布局文件,或者直接用main.xml。
4、在程序中注册manifest.xml。
代码如下:
1、在res/xml/文件夹下创建appwigdetprovider_provider.xml文件
</appwidget-provider>
2、修改mainactivity继承自appwidgetprovider并覆写里面的一些方法
@override private class lytimetask extends timertask { @override public lytimetask(context context, appwidgetmanager appwidgetmanger) {
public class mainactivity extends appwidgetprovider {
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);
}
remoteviews remoteviews;
appwidgetmanager appwidgetmanager;
componentname widget;
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);
}
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、修改程序自动生成的清单文件。在androidmanifest.xml中,声明上述的appwidgetprovider的子类是一个receiver,并且:
(1)、该receiver的intent-filter的action必须包含“android.appwidget.action.appwidget_update”;
(2)、该receiver的meta-data为“android.appwidget.provider”,并用一个xml文件来描述布局属性。
<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 studio 解决logcat无过滤工具栏的操作
Android Studio 恢复小窗口停靠模式(Docked Mode)
Android studio保存logcat日志到本地的操作
Android Studio快捷键生成TAG、Log.x日志输出介绍
网友评论