【发布时间】:2012-03-16 20:38:04
【问题描述】:
我一直在关注各种 Widget 教程,例如 this one 和 this one
我尝试过根据我的目的调整他们的代码,并且尝试过直接复制粘贴。 似乎无论我做什么,我的小部件都不会更新。当它被放置在主屏幕上时,文本保持为创建它的静态文本。 我需要这个应用程序做的就是更新 4 个将包含在布局中的 TextView。
下面的代码大部分是从其中一个教程中复制而来的。我已经尝试调试 onUpdate 方法,但似乎从未命中断点。
任何帮助将不胜感激。
编辑:我恢复到这个小部件的一个更简单的版本,我在我之前的努力中尝试过,并将下面的代码替换为更简单的小部件的代码。我对我的清单进行了 CommonsWare 建议的更改。不幸的是,问题仍然存在。
我的主 .java 文件如下所示:
public class NetStatWidget extends AppWidgetProvider
{
public void onUpdate(Context context, AppWidgetManager manager, int[] appWidgetIds)
{
ComponentName thisWidget = new ComponentName(context, NetStatWidget.class);
int[] widgetId = manager.getAppWidgetIds(thisWidget);
RemoteViews remoteView = new RemoteViews(context.getPackageName(), R.layout.appwidget);
remoteView.setTextViewText(R.id.textView0, "Hello");
manager.updateAppWidget(widgetId, remoteView);
}
}
我的清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.stat"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<receiver android:name="NetStatWidget" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/providerinfo" />
</receiver>
</application>
</manifest>
还有我的小部件提供者信息:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:initialLayout="@layout/main"
android:minWidth="146dip"
android:minHeight="72dip"
android:updatePeriodMillis="10000">
【问题讨论】: