0

私の手順:

  1. ランチャー ショートカット スタート アクティビティA ;
  2. ホームボタンをクリックします。
  3. カスタム ショートカット スタート アクティビティB ;
  4. [戻る] ボタンをクリックすると、Activity Aが表示されます。

しかし、カスタム ショートカットをクリックすると、古いアクティビティがすべて閉じられます。これどうやってするの?

マニフェスト:

activity A: android:launchMode="singleTop"
activity B: android:launchMode="singleTop" and android:exported="true"

ジャワ:

private void setShortCut() {
  Intent shortcutIntent = new Intent(getApplicationContext(), A.class);
  shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
  shortcutIntent.setAction(Intent.ACTION_MAIN);
  Intent intent = new Intent();
  intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
  intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "test");
  intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, ((BitmapDrawable)imgLogo.getDrawable()).getBitmap());
  intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
  sendBroadcast(intent);
}
4

2 に答える 2

1
activity A: android:finishOnTaskLaunch="true"
activity B: android:finishOnTaskLaunch="true" and android:exported="true"  

http://developer.android.com/guide/topics/manifest/activity-element.html#finishの公式ドキュメントから

「ユーザーがタスクを再度起動する (ホーム画面でタスクを選択する) たびに、アクティビティの既存のインスタンスをシャットダウン (終了) する必要があるかどうか — シャットダウンする必要がある場合は「true」、そうでない場合は「false」 。デフォルト値は「false」です。

于 2013-03-30T22:10:49.973 に答える