为了拥有Widget,我们需要维护一个 XML 文件 (AppWidgetProviderInfo) 来描述小部件的属性,例如大小或固定更新频率,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="160dp"
android:minHeight="72dp"
android:initialLayout="@layout/widget_layout"
android:updatePeriodMillis="1800000"
android:configure="android.project.WidgetConfigure" >
</appwidget-provider>
并在 AndroidManifest.xml 中维护 App Widget 配置。
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_info" />
</receiver>
我知道我们不能编辑updatePeriodMillis
. 以编程方式,我们需要使用 AlarmManager。(Android Widget 以编程方式设置 android:updatePeriodMillis)
但是如何以编程方式从 xml 文件中读取该值。有什么办法吗?
附加物:
try {
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(getApplicationContext());
AppWidgetProviderInfo info = appWidgetManager.getAppWidgetInfo(R.xml.widget_info);
System.out.println("Time: " + info.updatePeriodMillis);
} catch(Exception err) {
err.printStackTrace();
}
如果我在 Activity 中使用此代码,它会在 catch 中返回 NullPointerException。