0

我有一个具有 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>

如果需要,我将发布任何其他代码。

用户完成配置后,我该怎么做才能防止应用程序出现?

4

1 回答 1

0

我让它自己工作。我添加了 IntentFlagIntent.FLAG_ACTIVITY_NEW_TASKandroid:taskAffinity:"some.custom.widgetConfig.task.ns"在我的 Android-Manifest 中添加了一个自定义,它正在工作。

于 2012-08-15T12:02:06.677 回答