kotlin 如何使用Intent action extra将值从Activity传递到Widget

zzzyeukh  于 2023-01-26  发布在  Kotlin
关注(0)|答案(1)|浏览(253)

我想使用Intent传递一个值到我的小部件。但是出了问题,我无法接收我的Intent额外值。
我的主要活动:

var testValue = "test"
        val intent = Intent("my.action.string")
        intent.putExtra("extra", testValue)
        sendBroadcast(intent)

清单:

<receiver
                android:name=".ui.widget.RateWidget"
                android:exported="true">
                <intent-filter>
                    <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
                    <action android:name="my.action.string" />
                </intent-filter>
    
                <meta-data
                    android:name="android.appwidget.provider"
                    android:resource="@xml/rate_widget_info" />
</receiver>

我的小部件类:

class RateWidget: AppWidgetProvider() {

    private var myMessage = "default"

    override fun onReceive(context: Context?, intent: Intent?) {
        super.onReceive(context, intent)

        val action = intent?.action

        if (action == "my.action.string") {
            val state = intent.extras!!.getString("extra")
            if (state != null) {
                myMessage = state
            }
        }
    }
bq3bfh9z

bq3bfh9z1#

在小工具中尝试:

val state = intent.getStringExtra("extra")

相关问题