天天看点

Android Widget开发模板解析

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开发内容的学习能对你有所帮助!

继续阅读