0

ConfigActivity を持つウィジェットがあります。初めてウィジェットをホーム画面に配置すると、すべてが期待どおりに機能します。

  • User Places Widget -> WidgetConfig が起動されます
  • ユーザーがウィジェットを構成する
  • ユーザー クリックの承認
  • ウィジェット付きのホーム画面は、サービスによって表示および更新されます。

ウィジェットには、ユーザーが構成に戻るためのアイコンがあります。ユーザーがアプリを起動し、ホームボタンを押し、その後 WidgetConfigIcon をクリックすると、バグが表示されます。

  • ユーザーが WidgetConfigIcon をクリック -> WidgetConfig が起動
  • ユーザーが構成し、同意をクリックします
  • ホームスクリーンの代わりにアプリが表示される
  • ユーザーが戻るボタンを押す
  • ホーム画面が表示されます。

ユーザーがアプリを起動し、HomeButton ではなく BackButton をクリックした場合は表示されません。ホームスクリーンの最初の場所にあるため、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

私はそれを自分で機能させます。IntentFlag を追加し、Android-Manifest 内にIntent.FLAG_ACTIVITY_NEW_TASKカスタムも追加しましたが、機能しています。android:taskAffinity:"some.custom.widgetConfig.task.ns"

于 2012-08-15T12:02:06.677 に答える