android AppWidgetProvider使用
来源:互联网 发布:四大名著排名 知乎 编辑:程序博客网 时间:2024/05/19 13:17
以项目中的天气为例
1、先有个后台服务获取到天气信息,去更新主界面的天气数据信息
private static WeatherWidget mAppWidgetProvider = WeatherWidget.getInstance();
public static PendingIntent getActivityIntent(Context context) {Intent timeAndWeather = new Intent(context, TimeAndWeather.class);timeAndWeather.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);timeAndWeather.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);Bundle bundle = new Bundle();bundle.putString(Constants.INTENT_VARIABLE_WIDGET_CITY, finalCityName);timeAndWeather.putExtras(bundle);return PendingIntent.getActivity(context, 0, timeAndWeather, PendingIntent.FLAG_UPDATE_CURRENT);}
mAppWidgetProvider.updateWidgetWeather(context, city,tempLow,tempHigh, condition,srcId,wind, outTemp,showContent ,weatherActivityIntent);
public class WeatherWidget extends AppWidgetProvider {
void updateWidgetWeather(Context context, String city, String tempLow,String tempHigh, String condition, int srcId, String wind,String outTemp,int showContent, PendingIntent weatherActivityIntent) { ......final Resources res = context.getResources();RemoteViews remoteViews = new RemoteViews(context.getPackageName(),R.layout.widget);remoteViews.setTextViewText(R.id.weather_city_condition, city);remoteViews.setTextViewText(R.id.weather_wind_condition, wind);remoteViews.setTextViewText(R.id.weather_range_condition, condition+ " " + tempHigh + " / " + tempLow);pushUpdate(context, null, remoteViews);}
private void pushUpdate(Context context, int[] appWidgetIds,RemoteViews views) {// Update specific list of appWidgetIds if given, otherwise default to// allfinal AppWidgetManager gm = AppWidgetManager.getInstance(context);gm.updateAppWidget(THIS_APPWIDGET, views);}static final ComponentName THIS_APPWIDGET = new ComponentName("cn.com.xxx.weather", "cn.com.xxx.weather.widget.WeatherWidget");
<receiver android:name=".widget.WeatherWidget" android:enabled="true" android:exported="true" android:icon="@drawable/icon" > <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/widget_provider" /> </receiver>
widget_provider.xml
<?xml version="1.0" encoding="utf-8"?><appwidget-providerxmlns:android="http://schemas.android.com/apk/res/android"android:minWidth="394dip"android:minHeight="177dip" android:updatePeriodMillis="60000"android:initialLayout="@layout/widget"></appwidget-provider>
R.layout.widget
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/widget" android:layout_width="410dip" android:layout_height="match_parent" android:layout_marginLeft="25dip" > <ImageView android:id="@+id/weather_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="155dip" android:src="@drawable/leizhenyu" /> <include android:id="@+id/out_temperature" layout="@layout/out_temperature" android:visibility="invisible"/> <TextView android:id="@+id/weather_city_condition" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/out_temperature" android:layout_marginTop="30dip" android:textColor="#ffffff" android:textSize="24sp" /> <TextView android:id="@+id/weather_range_condition" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/weather_city_condition" android:layout_marginTop="10dip" android:textColor="#ffffff" android:textSize="20sp" /> <TextView android:id="@+id/weather_wind_condition" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/weather_range_condition" android:layout_marginTop="8dip" android:textColor="#ffffff" android:textSize="20sp" /> <!-- android:visibility="gone" --></RelativeLayout>
0 0
- android AppWidgetProvider使用
- Android AppWidgetProvider使用简例
- Android基础之AppWidgetProvider
- Android之AppWidgetProvider
- android笔记01 AppWidgetProvider
- Android AppWidgetProvider应用
- Android基础之AppWidgetProvider
- Android基础之AppWidgetProvider
- android AppWidgetProvider 使用方法
- android AppWidgetProvider讲解
- Android小控件AppWidgetProvider
- AppWidgetProvider 类使用
- 使用AppWidgetProvider类
- 使用AppWidgetProvider类
- AppWidgetProvider使用介绍
- AppWidgetProvider使用介绍
- AppWidgetProvider使用介绍
- AppWidgetProvider使用介绍
- Android 事件分发机制详解
- 迭代器的分类
- ExtJS 4.2学习(一)——环境搭建
- iPhone各尺寸下的分辨率
- Objective-C Method Swizzling
- android AppWidgetProvider使用
- Excel的常用导出导入数据的实现
- Longest Common Prefix
- linux 下性能调试工具
- 用css控制鼠标样式
- 学习资料收集
- XMPP相关
- 分解质因数并输出详解
- Cocos项目避免不断复制粘贴android lib库的方法