android widget开发模板是本文要介绍的内容,主要是来了解并学习android widget开发应用,android
widget中使用了java语言开发比w3c的widget运行效率提高了不少,可以做更多的事情调用系统的api,除了ui上的限制外,我们可以考虑帮助系统完善一些appwidget,android 123给出大家一个开发widget的模板。
public class cwjwidget extends appwidgetprovider {
@override
public void onupdate(context context, appwidgetmanager appwidgetmanager,
int[] appwidgetids) {
context.startservice(new intent(context, updateservice.class)); //这里创建一个服务,防止出现等待超时对话框
}
public static class updateservice extends service { //这个内部的服务我们推荐新开一个线程操作一些容易阻塞的情况,比如网络下载等等
@override
public void onstart(intent intent, int startid) {
remoteviews updateviews = buildupdate(this);
componentname thiswidget = new componentname(this, cwjwidget.class);
appwidgetmanager manager = appwidgetmanager.getinstance(this);
manager.updateappwidget(thiswidget, updateviews);
}
public remoteviews buildupdate(context context) {
resources res = context.getresources();
remoteviews updateviews = new remoteviews(
context.getpackagename(), r.layout.main); //主widget的layout布局
pendingintent pendingintent = pendingintent.getactivity(context,
0 /* no requestcode */,
new intent(android.provider.settings.action_device_info_settings),
0 /* no flags */);
updateviews.setonclickpendingintent(r.id.ui, pendingintent); //单击view打开intent,目标为系统信息,就是上面的action位置
updateviews.settextviewtext(r.id.info,
android.os.build.version.codename + " " +
android.os.build.id); //这里是api的获取系统版本的方法
updateviews.settextviewtext(r.id.changelist,
android.os.build.fingerprint
);
return updateviews;
public ibinder onbind(intent intent) {
return null;
}
有关涉及到的 androidmanifest.xml内容
xml version="1.0" encoding="utf-8"?>
manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android123.widget"
android:versioncode="1"
android:versionname="1.0">
<uses-sdk android:minsdkversion="3" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<receiver android:name=".buildwidget" android:label="android123_cwj">
<intent-filter>
<action android:name="android.appwidget.action.appwidget_update" />
intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/widget" />
receiver>
<service android:name=".cwjwidget$updateservice" />
application>
/manifest>
android manifest.xml上面提到的 \res\xml\widget.xml文件内容
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minwidth="150dip"
android:minheight="72dip"
android:updateperiodmillis="0"
android:initiallayout="@layout/widget" />
有关 main.xml的内容为
linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ui"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="6dip"
>
<textview
android:id="@+id/info"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:textsize="18dip"
/>
android:id="@+id/changelist"
android:layout_margintop="4dip"
android:textsize="9dip"
/linearlayout>
小结:android widget开发模板解析的内容介绍完了,希望通过android widget开发内容的学习能对你有所帮助!