zoukankan      html  css  js  c++  java
  • android之app widget(三)

        1. 接受来自App Widget的广播

         //Androidmanifest中的文件旨要,只要有个一action符合就会调用继承AppWidgetProvider的类:

          <receiver android:name="继承AppWidgetProvider的类">

         <intent-filter>

            <action android:name="android.appwidget.action.APPWIDGET_UPDATA"/>

           </intent-filter>

           <intent-filter>

            <action android:name="mars.appwidget03.UPDATE_APP_WIDGET"/>      //这是自定义action

           </intent-filter>

           <meta-data android:name="android.appwidget.provider"

              android:resource="@xml/example_appwidget_info"/>

           </receiver>

        //在代码中继承AppWidgetProvider的类的程况如下:

         A. 在Update方法中

         Intent intent = new Intent();

         intent.setAction("mars.appwidget03.UPDATE_APP_WIDGET");

           使用getBroadcast方法得到PendingIntent对象

         PendingIntent pendingIntent = PendingIntent.getBroadcast(contect,0,intent对象,0);

           B. 再onReciever方法中接收步骤A发送的广播

        

        2. 更新App Widget当中控件的状态

        public void onReceive(Context context, Intent intent){

        String action = intent.getAction();

        if(action == "mars.appwidget03.UPDATE_APP_WIDGET"){

          RemoteViews remoteViews = new RemoteViews(context.getPackage , R.layout.example_appwidget);

          //修改图片

          remoteViews .setImageViewResource(R.id.imageId , R.drawable.ku);

          remoteViews 。setTextViewText(R.id.widgetTextId , "");

          //获得AppWidgetManager 对象

          AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);

          //ComponentName指的是整个app widget控件 , 而RemoteViews指的是app widget里面的控件

          ComponentName componentName = new ComponentName(context, ExampleAppWidgetProvider.class);

          //更新appwidget

          appWidgetManager .updateAppWidget(componentName , remoteViews);

            }

            //必须要有else语句,不然其他的onUpdate,onEnable等函数将不会调用

            else{

            super onReceive(context,intent);

              }

          }

  • 相关阅读:
    分享上大学时CCTV5经常播放的一段宣传片
    嗯, 在Vista下面post一篇, 快过年的二三事
    [转自天涯]很多年以前,我是一个中锋
    关于Anthem的Button控件, 为啥仍然会PostBack?
    小白三下杭州
    搜狗, 谷歌, 紫光, 3大输入法互打结果.
    2008春节回家流水账
    早上拍的雪景.
    如果安装.net framework 3.5出错, 可以这样解决
    我那幸福的坐车偶记...
  • 原文地址:https://www.cnblogs.com/lee0oo0/p/2396021.html
Copyright © 2011-2022 走看看