AppWidget应用(三)---PendingIntent 之 getBroadcast

本文介绍如何在AppWidget中结合PendingIntent和广播来动态更新组件内容。通过实例展示了在AndroidManifest.xml注册广播接收器,并重载AppWidgetProvider方法以响应用户操作,实现点击按钮后改变TextView和ImageView的效果。
摘要由CSDN通过智能技术生成


    下面我们来看下appWidget如何通过广播来更新appWidget上的信息,在AppWidget应用(二)的基础上,需要添加一个自定义的消息,并且在AndriodMainfest上注册;代码如下

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

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.appwidgetdemo.MainActivity"
            android:label=&
Android 中,`EXTRA_APPWIDGET_PREVIEW` 是一个用于在 `AppWidgetProvider` 中获取小部件预览图的额外参数键。 当系统请求更新小部件时,`onUpdate()` 方法会被调用,并传递一个 `AppWidgetManager` 对象和一个包含额外参数的 `Intent` 对象。其中,额外参数可以包含 `EXTRA_APPWIDGET_PREVIEW` 键,用于指示是否请求小部件的预览图。 你可以通过以下方式在 `AppWidgetProvider` 中获取该参数: ```kotlin override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) { for (appWidgetId in appWidgetIds) { val intent = Intent(context, MyWidgetProvider::class.java) intent.action = AppWidgetManager.ACTION_APPWIDGET_UPDATE intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId) val extras = Bundle() extras.putBoolean(AppWidgetManager.EXTRA_APPWIDGET_PREVIEW, true) intent.putExtras(extras) val pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT) // 更新小部件视图 // ... // 根据是否请求预览图执行不同的操作 if (extras.getBoolean(AppWidgetManager.EXTRA_APPWIDGET_PREVIEW)) { // 请求小部件的预览图 // ... } else { // 正常更新小部件 // ... } } } ``` 通过检查 `extras.getBoolean(AppWidgetManager.EXTRA_APPWIDGET_PREVIEW)`,你可以确定是否请求了小部件的预览图,并根据需要执行相应的操作。 请注意,`EXTRA_APPWIDGET_PREVIEW` 参数的具体用法可能因不同的 Android 版本和小部件提供者而有所不同。建议查阅相关文档或参考示例代码以获取更准确的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值