Android 15下Widget无法更新:onUpdate方法未触发问题求助
问题:升级compileSdk/targetSdkVersion至35后Widget停止更新
将compileSdk和targetSdkVersion升级到35后,我的应用Widget停止更新,AppWidgetProvider的onUpdate方法完全没被调用。我查了Android 15的变更记录,没找到相关原因。把targetSdkVersion改回34后,在Android 14的真机和模拟器上Widget能正常更新,但Android 15设备上还是不行;只有当compileSdk和targetSdkVersion都设为34时,所有设备才能正常工作。
代码实现
抽象基类BaseWidgetProvider
abstract class BaseWidgetProvider : AppWidgetProvider(), KoinComponent { companion object { const val WIDGET_NAME = "widget_name" } abstract fun getWidgetInfo(): Bundle override fun onEnabled(context: Context?) { super.onEnabled(context) logFirebaseEvent(context!!, WIDGET_ADDED, getWidgetInfo()) } override fun onDisabled(context: Context?) { super.onDisabled(context) logFirebaseEvent(context!!, WIDGET_REMOVED, getWidgetInfo()) } override fun onUpdate( context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray ) { Log.e("EEE", "onUpdate") updateWidgets(context) } }
AppWidget Provider配置文件
<?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:initialLayout="@layout/widget_original_layout" android:configure="com.packagename.widget.WidgetSettingsActivity" android:minHeight="52dp" android:minWidth="160dp" android:resizeMode="horizontal|vertical" android:previewImage="@drawable/original_widget_preview" android:updatePeriodMillis="1800000" > </appwidget-provider>
Manifest中的接收器声明
<receiver android:name=".SunWidgetProvider" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:exported="false"> <intent-filter> <action android:name="android.intent.action.DATE_CHANGED" /> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/original_widget" /> </receiver>
内容的提问来源于stack exchange,提问作者user3407078
相关产品推荐
相关产品推荐

