我appwidget
listview
。我们可以看到一些信息here
1)此小部件无法在2.x上运行。但是这个设备上的用户在他的列表中看到这个小部件并且可以在屏幕上移动它。他得到错误后。我能以任何方式在2.x上隐藏这个小部件吗? Ofcouse,我可以将这个小部件的标题设置为“MyWidget ...(3.x-4.x)。但我觉得这不好。
2)第二期。在点击小部件上,我打开我的应用程序activity
(widgetAct)。这不是主要活动。 widgetAct显示为对话框。所有工作,但......如果我打开主要活动,然后单击HOME,而不是BACK。现在点击widget,打开我的widgetAct,但在背景上我也看到了主要活动。
3)另一个案例。打开widgetAct。看到这个活动。单击BACK。现在长按:查看上次启动的应用程序。单击我的应用程序(包含widgetAct)并查看此widgetAct。但是想要查看主要活动或任何其他活动我的应用程序,而不是widgetAct。
我尝试了不同的案例:添加FLAG_ACTIVITY_NO_HISTORY
,FLAG_ACTIVITY_NEW_TASK
,FLAG_ACTIVITY_CLEAR_TOP
。但没有任何帮助:
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只有FLAG_ACTIVITY_NEW_TASK
标志。
答案 0 :(得分:0)
我不知道为什么,但是......我设置了一些标志来表示并开始点击小部件上的活动。真正开放的活动只有FLAG_ACTIVITY_NEW_TASK
。
解决方案: 1)将小部件xml提供程序从xml文件夹移动到xml-v11。现在在2.x设备上隐藏了这个小部件。
2)第二种情况:为widgetAct taskAffinity设置。但在这种情况下,在最近的应用程序中我看到了2个应用程序实例,因为使用了2个堆栈活要修复它,请添加到widgetAct:
@Override
protected void onPause() {
super.onPause();
finish();
}
3)点击小工具打开widgetAct。我关闭此实例widgetAct并打开另一个widgetAct,但添加下一个标志:FLAG_ACTIVITY_NO_HISTORY
,FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
。