我有一个具有 ConfigActivity 的小部件。如果我第一次将小部件放在主屏幕上,一切都会按预期工作:
- User Places Widget -> WidgetConfig 已启动
- 用户配置小部件
- 用户点击接受
- 带有小部件的主屏幕由服务显示和更新。
小部件上有一个图标,允许用户返回到配置。如果用户启动应用程序,按下 HomeButton,然后在 WidgetConfigIcon 上单击,则会出现该错误:
- 用户点击 WidgetConfigIcon -> WidgetConfig 启动
- 用户配置并点击接受
- 显示 APP 而不是 HomeScreen
- 用户按下后退按钮
- 显示主屏幕。
如果用户启动应用程序并单击 BackButton 而不是 HomeButton,则它不会出现。我希望 ConfigIcon 具有完全相同的行为,因为它位于主屏幕上的第一个位置。我发布了相关的实现
小部件服务:
Intent activityIntent = new Intent(this, WidgetConfig.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//tried many Flags with no result
activityIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mWidgetData.getWidgetId());
PendingIntent configPendingIntent = PendingIntent.getActivity(this, mWidgetData.getWidgetId(), activityIntent, PendingIntent.FLAG_UPDATE_CURRENT);
mRemoteViews.setOnClickPendingIntent(R.id.widget_controls, configPendingIntent);
清单入口:
<activity
android:name="namespace.WidgetConfig"
android:theme="@android:style/Theme.Light.NoTitleBar">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
</intent-filter>
</activity>
如果需要,我将发布任何其他代码。
用户完成配置后,我该怎么做才能防止应用程序出现?