我想使用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
}
}
}
1条答案
按热度按时间bq3bfh9z1#
在小工具中尝试: