为什么我的Android 2.3小部件在启动后没有响应点击?

时间:2012-04-18 19:25:58

标签: android android-widget click boot

我有一个带小部件的应用。我想用小部件启动应用程序,但启动后我的小部件不响应点击。只有在正常启动应用程序(并再次关闭)后,小部件才会开始响应小部件本身的点击。

这是我使用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);
    }
}

我需要更改哪些内容,以便我的应用程序在启动后注册窗口小部件,而不必先至少启动一次?

1 个答案:

答案 0 :(得分:0)

尝试创建一个响应BOOT广播的BroadcastReceiver并重置小部件的PendingIntent:我不相信小部件PendingIntents在设备重启后仍然存在。