我有一个小部件应该对点击/点击事件作出反应,它确实可以正常工作,直到我重启设备/模拟器。
重新启动后,我必须从屏幕上手动删除所有窗口小部件实例并重新添加它们以使它们再次对事件做出反应。
下面的代码在onEnabled()和onUpdate()方法中都被调用。我仔细检查了在设备启动期间所有代码行都在两种方法中执行。
public void doSetUpClickIntent( Context context )
{
PendingIntent pendingIntent = UtilityClass.doCreateIntent( context );
if ( pendingIntent != null )
{
ComponentName componentName = new ComponentName(context, WidgetProvider.class );
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
int [] appWidgetIds = appWidgetManager.getAppWidgetIds(componentName);
for ( int appWidgetId : appWidgetIds )
{
RemoteViews views = new RemoteViews( context.getPackageName(), R.layout.widget );
views.setOnClickPendingIntent( R.id.widgetlayout, pendingIntent );
appWidgetManager.updateAppWidget( appWidgetId, views );
}
}
}
我无法找到原因。我做错了什么?
谢谢。