我有一個AppWidgetProvider,當一個小部件首次添加到主屏幕時,我需要做一些初始化。我知道做這件事的地方是在onEnabled(Context context)方法中。我的問題是,這種方法從來沒有被稱爲(據我可以在logcat中看到)。AppWidgetProvider問題
這裏是我的代碼:
public class MyMonitorWidget extends AppWidgetProvider{
@Override
public void onEnabled(Context context) {
super.onEnabled(context);
Log.v("LOG", "Widget onEnabled");
Intent intentToFire = new Intent(UpdateAlarmReceiver.ACTION_UPDATE_ALARM);
context.sendBroadcast(intentToFire);
}
...
}
而且我appwidget提供商的xml:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:initialLayout="@layout/widget_layout"
android:minWidth="146dp"
android:minHeight="74dp"
android:label="Monitor Widget"
/>
,並在清單:
<receiver android:name="MyMonitorWidget" android:label="Monitor Widget">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<intent-filter>
<action android:name="com.android.myMonitor.ACTION_NOTIFY_WIDGET"/>
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/monitor_widget_info"/>
</receiver>
你認爲是什麼問題?
CommonsWare的答案是正確的,但如果你用錯誤的代碼發揮各地,你可能要卸載該應用程序就開始工作了。 –