我有一个带有小部件的应用程序。我想用小部件启动应用程序,但启动后我的小部件没有响应点击。只有在正常启动应用程序(并再次关闭它)后,小部件才会开始响应对小部件本身的点击。
这就是我使用 AppWidgetProvider 设置小部件的方式:
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
{ final int ids = appWidgetIds.length;
for(int i=0;i<ids;i++)
{ int appWidgetId = appWidgetIds[i];
Intent intent = new Intent(context, TestReceiver.class);
intent.setAction(ACTION_WIDGET_RECEIVER);
intent.setClassName(TestReceiver.class.getPackage().getName(), TestReceiver.class.getName());
PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
views.setOnClickPendingIntent(R.id.widget_root, pi);
views.setTextViewText(R.id.widgetclock, "Loading...");
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
我必须更改什么,以便我的应用程序在启动后注册对小部件的点击,而不必先启动它至少一次?