Android AppWidget组件

news/2024/7/5 3:32:13 标签: 移动开发, java

res/xml/example_appwidget_info.xml 定义了AppWidget必要属性

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


res/xml/appwidget_provider_layout.xml AppWidget的控件布局文件

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:text="WidgetTextView" android:textColor="@android:color/black" android:id="@+id/myWidgetTextView" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout>


ExampleAppWidgetProvider.java

package com.zeph.android.widget; 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 ExampleAppWidgetProvider extends AppWidgetProvider { @Override public void onDeleted(Context context, int[] appWidgetIds) { super.onDeleted(context, appWidgetIds); } @Override public void onDisabled(Context context) { super.onDisabled(context); } @Override public void onEnabled(Context context) { super.onEnabled(context); } @Override public void onReceive(Context context, Intent intent) { super.onReceive(context, intent); } @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { final int N = appWidgetIds.length; //循环的更新所有与这个Provider有关的AppWidget for (int i = 0; i < N; i++) { int appWidgetId = appWidgetIds[i]; // 设置Widget被点击之后,启动的Activity Intent intent = new Intent(context, WidgetActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.appwidget_provider_layout); views.setOnClickPendingIntent(R.id.myWidgetTextView, pendingIntent); appWidgetManager.updateAppWidget(appWidgetId, views); } } }


AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.zeph.android.widget" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="4" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:label="@string/app_name" android:name="WidgetActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name="ExampleAppWidgetProvider"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE"></action> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/example_appwidget_info"> </meta-data> </receiver> </application> </manifest>

AppWidgetProvider继承自BroadcastReceiver

所以使用receiver注册AppWidgetProvider


http://www.niftyadmin.cn/n/1000281.html

相关文章

让人很容易误解的TCP拥塞控制算法

分享一下我老师大神的人工智能教程&#xff01;零基础&#xff0c;通俗易懂&#xff01;http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识&#xff0c;造福人民&#xff0c;实现我们中华民族伟大复兴&#xff01;正文很多人会认为一个好的TCP拥塞控制算法会…

VMware Workstation 11.0.0 永久注册码

vm11 许可证 密钥 VMware 序列号介绍VMware Workstation&#xff08;中文名“威睿工作站”&#xff09;是一款功能强大的桌面虚拟计算机软件&#xff0c;提供用户可在单一的桌面上同时运行不同的操作系统&#xff0c;和进行开发、测试 、部署新的应用程序的最佳解决方案。VMwar…

linux下怎么退出telnet

在运维过程中&#xff0c;常常会telnet某个ip端口&#xff0c;如果 能telnet通&#xff0c;怎么退出呢 &#xff1f;1、telnet 63.172.25.18 6463 回车Trying 63.172.25.18...Connected to 63.172.25.18 (63.172.25.18).Escape character is ^].2、ctrl ] 回车telnet> 3、?…

Linux转发性能评估与优化 转发瓶颈分析与解决方案

分享一下我老师大神的人工智能教程&#xff01;零基础&#xff0c;通俗易懂&#xff01;http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识&#xff0c;造福人民&#xff0c;实现我们中华民族伟大复兴&#xff01;线速问题很多人对这个线速概念存在误解。认为…

如何写一个daemon程序

为什么80%的码农都做不了架构师&#xff1f;>>> 在实际的服务器后台程序开发时&#xff0c;有时需要将某个服务 daemon 化来完成一些定时任务&#xff0c;比如往 KV 系统中刷新数据。 有两个问题需要提前弄清楚: daemon 程序中的 pid file 有什么作用?为什么要二次…

基于GridView的程序菜单

res/layout/main.xml <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android" android:layout_width"fill_parent" android:layout_height"fill_parent&q…

UDP怎么会返回Connection refused错误

分享一下我老师大神的人工智能教程&#xff01;零基础&#xff0c;通俗易懂&#xff01;http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识&#xff0c;造福人民&#xff0c;实现我们中华民族伟大复兴&#xff01;有时候&#xff0c;写UDP socket程序的时候&…

清理内存的命令

前提: 释放前最好sync一下&#xff0c;防止丢数据 方法1 1.清理前内存使用情况 1free -m2.开始清理 1echo 3 > /proc/sys/vm/drop_caches3.清理后内存使用情况 1free -m方法2 1、首先查看linux内存使用 1free -m2、把内存数据同步到硬盘 1sync3、修改 /proc/sys/vm/drop_…