Android 带有集合的Appwidget。非法工作

Android 带有集合的Appwidget。非法工作,android,android-appwidget,Android,Android Appwidget,我有appwidget和listview。我们可以看到一些信息 1) 这个小部件在2.x上不起作用。但这个设备上的用户在他的列表中看到这个小部件,可以在屏幕上移动它。在他犯错误之后。我可以在2.x上隐藏这个小部件吗?当然,我可以将这个小部件的标题设置为“MyWidget…”(3.x-4.x)。但我认为这并不好 2) 第二个问题。在单击widget时,我打开了我的应用程序oneactivity(widgetAct)。这不是主活动。widgetAct显示为对话框。所有工作正常,但…如果我打开主活动,

我有
appwidget
listview
。我们可以看到一些信息

1) 这个小部件在2.x上不起作用。但这个设备上的用户在他的列表中看到这个小部件,可以在屏幕上移动它。在他犯错误之后。我可以在2.x上隐藏这个小部件吗?当然,我可以将这个小部件的标题设置为“MyWidget…”(3.x-4.x)。但我认为这并不好

2) 第二个问题。在单击widget时,我打开了我的应用程序one
activity
(widgetAct)。这不是主活动。widgetAct显示为对话框。所有工作正常,但…如果我打开主活动,请单击HOME,而不是BACK。现在单击widget,打开了我的widgetAct,但在后台我也看到了主活动

3) 另一种情况。打开widgetAct。查看此活动。单击“上一步”。现在长按:查看上次启动的应用程序。单击我的应用程序(包含widgetAct)并查看此widgetAct。但要查看我的应用程序的主活动或任何其他活动,但不要查看widgetAct

我尝试了不同的情况:添加
标记活动\u否\u历史记录
标记活动\u新任务
标记活动\u清除顶部
。但没有任何帮助:

Intent i = new Intent(ctx, myActivityCls);      i.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId);
i.setFlags(i.getFlags() | Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pi = PendingIntent.getActivity(ctx, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
remoteViews.setOnClickPendingIntent(viewId, pi);

我知道,我的widgetAct在打开时只有
标记活动新任务
标记。

我不知道为什么,但是…我将一些标记设置为意图并在单击小部件时启动活动。真正打开的活动只有
标记活动新任务

解决方案: 1) 将小部件xml提供程序从xml文件夹移动到xml-v11。现在在2.x设备上,此小部件被隐藏

2) 第二种情况:设置为widgetAct。但在最近的应用程序中,我看到了2个我的应用程序实例,因为使用了2个堆栈活动。要修复它,请添加到widgetAct:

@Override
protected void onPause() {
    super.onPause();
    finish();
}
3) 单击widget打开widgetAct。我关闭此实例widgetAct并打开另一个widgetAct,但添加下一个标志:
标志\u活动\u否\u历史
标志\u活动\u从最近的事件中排除