Android 第一个添加的小部件不可单击。二是

Android 第一个添加的小部件不可单击。二是,android,android-widget,broadcastreceiver,clickable,Android,Android Widget,Broadcastreceiver,Clickable,在我的Broadcastreceiver中,它同时是一个小部件。当我在安装后第一次添加小部件时,它是不可单击的。我添加的第二个小部件是可点击的。而第一个小部件仍然不可单击 在模拟器中测试不同版本时发生此错误。我手头没有其他设备,可以随时重置。对于测试,我总是从“擦除用户数据”开始,以确保它是一个新的安装 它适用于1.6,但不适用于2.x 我的首选项屏幕是一个手动独立活动,必须单独启动 如果你需要更多的信息,请告诉我 这里是我的代码,用于使其可点击: @Override public vo

在我的Broadcastreceiver中,它同时是一个小部件。当我在安装后第一次添加小部件时,它是不可单击的。我添加的第二个小部件是可点击的。而第一个小部件仍然不可单击

在模拟器中测试不同版本时发生此错误。我手头没有其他设备,可以随时重置。对于测试,我总是从“擦除用户数据”开始,以确保它是一个新的安装

它适用于1.6,但不适用于2.x

我的首选项屏幕是一个手动独立活动,必须单独启动

如果你需要更多的信息,请告诉我

这里是我的代码,用于使其可点击:

    @Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    super.onUpdate(context, appWidgetManager, appWidgetIds);
    Log.d(LOG_TAG, "Update");
    for (int id : appWidgetIds) {
        Intent intent = new Intent(ACTION);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
        //make widget clickable
        RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.main);
        remoteViews.setOnClickPendingIntent(R.id.imageview, pendingIntent);
        appWidgetManager.updateAppWidget(id, remoteViews);
    }
}

这里有一个很长的解决方案-在
pendingent
实例之间更改
pendingent.getBroadcast
中的请求代码;我想我的一个小部件也遇到了同样的问题,这次更改解决了这个问题。

我发现了错误

这是android仿真器别名AVD中的一个bug。该死的东西。希望这能帮助其他人不要在不存在的错误中浪费太多时间

bug id 8889“appWidgetManager.updateAppWidget未更新2.0和2.1下新AVD上的小部件”

解决方法是在开始擦除用户数据之后(我为此禁用了保存到快照-测试未启用)。而不是退出。然后不用擦拭就重新开始。
您可以使用ctrl+F11两次切换到横向模式并返回。

pendingent.getBroadcast(context,0,intent,0)
中,更改第二个参数,使其在传递到删除视图的每个挂起的意图中都不相同