我有一个带小部件的应用。我想用小部件启动应用程序,但启动后我的小部件不响应点击。只有在正常启动应用程序(并再次关闭)后,小部件才会开始响应小部件本身的点击。
这是我使用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);
}
}
我需要更改哪些内容,以便我的应用程序在启动后注册窗口小部件,而不必先至少启动一次?
答案 0 :(得分:0)
尝试创建一个响应BOOT广播的BroadcastReceiver并重置小部件的PendingIntent:我不相信小部件PendingIntents在设备重启后仍然存在。