appwidget 实现广播机制

package com.example.appwidget02;

import com.example.appwidget02.R.drawable;

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

public class appwidget02 extends AppWidgetProvider{     private static final String MY_ACTION="my.action.APPWIDGET_UPDATE";//静态全局常量    @Override  public void onReceive(Context context, Intent intent) {   String action = intent.getAction();   if(MY_ACTION.equals(action)){    RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.example_appwidgit);    remoteViews.setImageViewResource(R.id.my_image, R.drawable.ic_launcher);    AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);    ComponentName componentName = new ComponentName(context, appwidget02.class);    appWidgetManager.updateAppWidget(componentName, remoteViews);   }else{       super.onReceive(context, intent);  }  }    @Override  public void onUpdate(Context context, AppWidgetManager appWidgetManager,    int[] appWidgetIds) {   for(int i=0;i<appWidgetIds.length;i++){    Intent intent = new Intent();    intent.setAction(MY_ACTION);    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);    RemoteViews remoteViews = new RemoteViews(context.getPackageName(),R.layout.example_appwidgit);    remoteViews.setOnClickPendingIntent(R.id.button1, pendingIntent);    appWidgetManager.updateAppWidget(appWidgetIds[i], remoteViews);       }   super.onUpdate(context, appWidgetManager, appWidgetIds);  }  @Override  public void onEnabled(Context context) {   // TODO Auto-generated method stub   super.onEnabled(context);  }  @Override  public void onDisabled(Context context) {   // TODO Auto-generated method stub   super.onDisabled(context);  }  @Override  public void onDeleted(Context context, int[] appWidgetIds) {   // TODO Auto-generated method stub   super.onDeleted(context, appWidgetIds);  } }

配置文件

mainfest.xml

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"     package="com.example.appwidget02"     android:versionCode="1"     android:versionName="1.0" >

<uses-sdk         android:minSdkVersion="14"         android:targetSdkVersion="14" />

<application         android:allowBackup="true"         android:icon="@drawable/ic_launcher"         android:label="@string/app_name"         android:theme="@style/AppTheme" >         <activity             android:name=".MainActivity"             android:label="@string/app_name" >             <intent-filter>                 <action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />             </intent-filter>         </activity>        <receiver android:name=".appwidget02" >             <intent-filter>                 <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />             </intent-filter>             <intent-filter>                 <action android:name="my.action.APPWIDGET_UPDATE"/>             </intent-filter>             <meta-data                 android:name="android.appwidget.provider"                 android:resource="@xml/appwidget_info" />         </receiver>                            </application>

</manifest>

xml/example.xml

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="294dp"
    android:minHeight="294dp"
    android:updatePeriodMillis="86400000"
    android:initialLayout="@layout/example_appwidgit"
    >
   
</appwidget-provider>

layout/example_appwidget.xml

<?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" >    <TextView        android:id="@+id/textView01"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="first widgit"        android:background="#000000"        />       <Button        android:id="@+id/button1"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="点击测试"        />    <ImageView         android:id="@+id/my_image"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_margin="10dip"         android:src="@drawable/yes"          />

</LinearLayout>

时间: 2024-10-11 10:46:03

appwidget 实现广播机制的相关文章

转: 从现实生活中理解什么是广播机制

来自:http://blog.sina.com.cn/s/blog_714338950100p4km.html 一听到广播我们第一感觉就会联想到小时候村里面的广播,每逢村里有什么活动都是通过广播发送的.收听收音机也是一种广播,在收音机中有很多个广播电台,每个广播电台播放的内容都不相同.接收广播时广播(发送方)并不在意我们(接收方)接收到广播时如何处理.好比我们收听交通电台的广播,电台中告诉我们现在在交通状况如何,但它并不关心我们接收到广播时做如何做出处理,这不是广播应该关心的问题,OK,到这里我

Android广播机制(转)

1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器).广播作为Android组件间的通信方式,可以使用的场景如下:1.同一app内部的同一组件内的消息通信(单个或多个线程之间): 2.同一app内部的不同组件之间的消息通信(单个进程): 3.同一app具有多个进程的不同组件之间的消息通信: 4.不同app之间的组件之间消息通信: 5.Android系统在特定情况下与App之间的消息通

大四实习准备5_android广播机制

2015-5-1 android 广播机制 5.1简介 分为标准广播(Normal broadcasts)(无先后顺序,几乎同时接收,不可截断)和有序广播(Ordered broadcasts)(有先后顺序,可以截断)两种. 5.2接收系统广播 广播接收器对感兴趣的广播进行注册,这样就能监听到对应的广播,并在内部处理相应的逻辑. 注册广播的方式有两种,分别为在代码中注册(动态注册)(缺点:必须在程序启动之后才能接收到广播,因为注册的逻辑是写在onCreat()方法中的)和在AndroidMani

转载__广播机制

http://www.cnblogs.com/RMBP975/archive/2013/03/12/2955733.html Android广播机制简介 Android中的广播跟传统意义上的电台广播类似,广播机制最大的特点就是发送方并不关心接收方是否接到数据,也不关心接收方是如何处理数据的.另外,广播可以被不只一个应用程序所接收,当然也可能不被任何应用程序所接收. Android广播机制的三要素 Android广播机制包含三个基本要素:广播(Broadcast) - 用于发送广播:广播接收器(B

Android学习总结——本地广播机制

为了简单解决广播的安全性问题,Android引入了一套本地广播机制,使用这个机制发出的广播只能在程序的内部进行传递,只能接受来自本应用程序发出的广播.否则当我们发送一些携带关键数据的广播可能被截获,一些恶意程序也可能向我们的广播接收器中发送各种垃圾广播. 用法如下:(主要就是使用LocalBroadcastManager来对广播进行管理,并提供注册广播和发送广播的方法). package com.example.xch.localbroadcast; import android.content

详解广播机制,Broadcast Receiver,Android进阶必备知识(一)。

直奔主题,关于广播的一些定义什么的我觉得只要是一名合格的初级android开发这都知道吧,我下面要做的就是怎么去使用broadcast receiver. 1.怎么去监听系统广播? Android系统有很多内置的系统广播:电话,短信,时间,地区,电池电量,网络变化等等...那么我们怎么去在我们的应用中实现监听呢?下面我们以监听手机网络发生改变的广播进行监听,都知道广播有两种注册方式,在这里我使用的代码注册的方式,为的是能更好的去理解广播运行机制.在代码中注册一定要注意在你使用完毕的时候一定要反注

安卓开发_深入理解广播机制

一.Broadcast(广播) 在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理.这个广播跟我们传统意义中的电台广播有些相似之处.之所以叫做广播,就是因为它只负责“说”而不管你“听不听”,也就是不管你接收方如何处理.另外,广播可以被不只一个应用程序所接收,当然也可能不被任何应用程序所接收. (百度百科) 二.BroadcastReceiver(广播接收器) 1.自定义BroadcastReceiver 自定义广播

Android总结篇系列:Android广播机制

1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器).广播作为Android组件间的通信方式,可以使用的场景如下:1.同一app内部的同一组件内的消息通信(单个或多个线程之间): 2.同一app内部的不同组件之间的消息通信(单个进程): 3.同一app具有多个进程的不同组件之间的消息通信: 4.不同app之间的组件之间消息通信: 5.Android系统在特定情况下与App之间的消息通

android: 广播机制

记得在我上学的时候,每个班级的教室里都会装有一个喇叭,这些喇叭都是接入到学校 的广播室的,一旦有什么重要的通知,就会播放一条广播来告知全校的师生.类似的工作机 制其实在计算机领域也有很广泛的应用,如果你了解网络通信原理应该会知道,在一个 IP 网络范围中最大的 IP 地址是被保留作为广播地址来使用的.比如某个网络的 IP 范围是 192.168.0.XXX,子网掩码是 255.255.255.0,那么这个网络的广播地址就是 192.168.0.255. 广播数据包会被发送到同一网络上的所有端口,