0

特定のアクションを実行できる Android アプリケーションがあります。ただし、ホーム画面にショートカットを作成して特定のことを実行することも許可しています。ユーザーがショートカットから直接実行できるようにしたいメソッドを呼び出すボタンを押すことで、アプリで実行できる特定のことがあります (メソッド DoAction を呼び出します)。ショートカットをクリックすると、メイン アクティビティが開き、ボタンと同じように DoAction が呼び出されます。次に、アクティビティで finish() を呼び出して閉じます。

ただし、アプリが既に RAM で開いている (最小化されている) 場合に問題が発生します。ショートカットによって作成されたアクティビティで finish() を呼び出した後、アプリの古い実行中のインスタンスが前面に表示されます (これは望ましくありません)。

どうすればこれを回避できますか?

4

1 に答える 1

2

これは、ショートカットを作成するために使用した作業コードです。

Intent shortcutIntent = new Intent(ShortcutActivity.this, com.example.myproject.ClassToOpen.class);
shortcutIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); // This was the line that I needed to add

ShortcutIconResource iconResource = Intent.ShortcutIconResource.fromContext(ShortcutActivity.this, R.drawable.shortcut);
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "Shortcut Name");
setResult(RESULT_OK, intent);
于 2013-01-24T17:23:41.013 に答える