`
bcyy
  • 浏览: 1823379 次
文章分类
社区版块
存档分类
最新评论

Android-接受来自Appwidget的广播、更新Appwidget控件的状态

 
阅读更多

Android-接受来自Appwidget的广播、更新Appwidget控件的状态

听说得桌面者得填写,就拿PC来说吧,360和QQ基本上是使用最频繁的应用程序,每个程序在PC桌面右下角都会有相应的控件,占据桌面的时间越长,用户使用频率就越多,这样才会为应用程序带来更多的利益。手机桌面也是这样,毋庸置疑,使用最多自然是桌面上的。那如何添加自己的控件到桌面上呢,又如何改变控件的状态呢。

我自己做了个简单的实例:当点击图片按钮是,下面的图片就会更新为另一个图片

创建项目:AppWidget03

项目运行效果:

步骤:

1.定义布局文件:appwidget_provider_layout.xml

2.在res目录下新建目录xml,创建xml文件:appwidget_provider.xml

3.在manifest文件下注册receiver

4.新建类Appwidget继承AppwidgetProvider

5.重写AppwidgetProvider的OnUpdate方法,和OnReceiver方法

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
	<ImageButton 
	    android:id="@+id/imageButton1"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:src="@drawable/th_desktop"/>
	<ImageView
	    android:id="@+id/imageView1"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:src="@drawable/th_twitter"
	    />
</LinearLayout>


<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" 
    android:minWidth="292dp"
    android:minHeight="72dp"
    android:updatePeriodMillis="30000"
    android:initialLayout="@layout/main"
    >
</appwidget-provider>


 <receiver android:name="AppWidget">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
            </intent-filter>
            <intent-filter>
                <action android:name="org.wwj.appwidget.UPDATE_APP_WIDGET"/>
            </intent-filter>
            <meta-data android:name="android.appwidget.provider"
                android:resource="@xml/appwidget_provider"/>
        </receiver>


package mars.appwidget03;

import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.widget.RemoteViews;

public class AppWidget extends AppWidgetProvider {
	//定义一个常量字符串,该常量用于命名Action
	private static final String UPDATE_ACTION = "mars.appwidget03.UPDATE_APP_WIDGET";

	@Override
	public void onDeleted(Context context, int[] appWidgetIds) {
		// TODO Auto-generated method stub
		super.onDeleted(context, appWidgetIds);
	}

	@Override
	public void onDisabled(Context context) {
		// TODO Auto-generated method stub
		super.onDisabled(context);
	}

	@Override
	public void onEnabled(Context context) {
		// TODO Auto-generated method stub
		super.onEnabled(context);
	}

	@Override
	public void onReceive(Context context, Intent intent) {
		super.onReceive(context, intent);
		String action = intent.getAction();
		if (UPDATE_ACTION.equals(action)) {
			System.out.println("onReceive--->" + UPDATE_ACTION);
		}
	}

	@Override
	public void onUpdate(Context context, AppWidgetManager appWidgetManager,
			int[] appWidgetIds) {
		//创建一个Intent对象
		Intent intent = new Intent();
		//为Intent对象设置Action
		intent.setAction(UPDATE_ACTION);
		//使用getBroadcast方法,得到一个PendingIntent对象,当该对象执行时,会发送一个广播
		PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0,
				intent, 0);
		RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
				R.layout.main);
		remoteViews.setOnClickPendingIntent(R.id.imageButton, pendingIntent);
		appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
	}

}


分享到:
评论

相关推荐

    android app widget 介绍

    App Widget 的概念 一个简单的App Widget例子 PendingIntent的使用 RemoteViews的使用 接收来自App Widget的广播 更新App Widget的控件状态

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--桌面控件widget的创建方法 |--模拟发短信 指定号码 短信窃听提示 |--消息机制 mesage looper |--滑动之左右滑动的两种定义 |--电话簿读取联系人信息 |--监听 |--监听之CheckBox是否选中监听 |--监听之EditText...

    Android控件AppWidgetProvider使用方法详解

    1. 为AppWidget提供一个文件定义小控件的基本配置信息 在资源文件夹res目录下新建xml文件夹,添加app_widget_provider_info.xml文件内容为: &lt;?xml version=1.0 encoding=utf-8?&gt; &lt;!--小控件宽高--&gt; ...

    android学习ppt打包下载

    10_桌面插件(app widget).pptx 11_广播.pptx 12_服务.pptx 13_内容提供者.pptx 14_数据存储.pptx 15_网络与通讯.pptx 16_电话、短信和彩信.pptx 17_多媒体与2D、3D绘图技术.pptx 18_调试、性能调优、打包.pptx

    Android 编写与酷狗音乐极像的音乐播放器源代码.rar

     接受广播后,刷新桌面widget,改变widget播放状态,以及播放与暂停图标的切换,尝试更新歌词、歌曲信息,切换歌曲时,进度在歌词第一句之前则显示歌名歌手信息。  压缩包源码目录内的其它文件夹分别是APP的服务器...

    Android基础知识详解

    Android的系统架构 6 一、应用程序 6 二、应用程序框架 6 三、Android Runtime 7 四、系统库 7 五、Linux 内核 8 Webkit浏览器引擎简介 9 Dalvik虚拟机简介 11 ...窗口小部件(App Widget) 124 NDK编程 125

    《Google Android SDK开发范例大全(第3版)》.pdf

    4.30 实时配置桌面上的appwidget ui layout 163 4.31 识别输入装置id与inputdevice装置 166 4.32 选取文字的聪明文字联想 169 4.33 设计与launcher相同的三页滑动layout 172 第5章 交互式通信服务与...

    Google Android SDK开发范例大全(第3版) 1/5

    4.30 实时配置桌面上的AppWidget UI Layout 4.31 识别输入装置ID与InputDevice装置 4.32 选取文字的聪明文字联想 4.33 设计与Launcher相同的三页滑动Layout 第5章 交互式通信服务与手机控制 5.1 具有正则表达式的...

    Google Android SDK开发范例大全(第3版) 4/5

    4.30 实时配置桌面上的AppWidget UI Layout 4.31 识别输入装置ID与InputDevice装置 4.32 选取文字的聪明文字联想 4.33 设计与Launcher相同的三页滑动Layout 第5章 交互式通信服务与手机控制 5.1 具有正则表达式的...

    Google Android SDK开发范例大全(第3版) 3/5

    4.30 实时配置桌面上的AppWidget UI Layout 4.31 识别输入装置ID与InputDevice装置 4.32 选取文字的聪明文字联想 4.33 设计与Launcher相同的三页滑动Layout 第5章 交互式通信服务与手机控制 5.1 具有正则表达式的...

    Google Android SDK开发范例大全(第3版) 5/5

    4.30 实时配置桌面上的AppWidget UI Layout 4.31 识别输入装置ID与InputDevice装置 4.32 选取文字的聪明文字联想 4.33 设计与Launcher相同的三页滑动Layout 第5章 交互式通信服务与手机控制 5.1 具有正则表达式的...

    Android开发资料合集--续

    30、手动更新所有Widget 58 31、有关ListView 问题 58 32、在手机上打开文件的方法 59 33、使用系统自带的TabHost的问题 59 34、弹出菜单 61 35、Toast重叠显示时延迟解决 62 36、ADT新特性:ImageView的定义 62 37...

    Google Android SDK开发范例大全(第3版)part2

     4.30 实时配置桌面上的AppWidget UI Layout  4.31 识别输入装置ID与InputDevice装置  4.32 选取文字的聪明文字联想  4.33 设计与Launcher相同的三页滑动Layout  第5章 交互式通信服务与手机控制  5.1 ...

    google android sdk开发范例大全 第二版 PDF 光盘代码

     4.30 实时配置桌面上的AppWidget UI Layout  第5章 交互式通信服务与手机控制   5.1 具有正则表达式的TextView   5.2 ACTION!CALL!拨打电话   5.3 自制发送短信程序   5.4 自制发送E-mail...

Global site tag (gtag.js) - Google Analytics