1

次のコードを使用してAndroidショートカットを作成しました

    Intent ショートカット = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); Shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,getString(R.string.app_name));  
    インテントのshortcutIntent = new Intent();
    shortIntent.setClassName(this,MainActivity.class.getName());
    Shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT、shortcutIntent);
    Shortcut.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    Shortcut.addFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);

    ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_launcher);
    Shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);
    sendBroadcast(ショートカット);

アプリを開き、最後に BActivity のようなアクティビティで、ホーム画面に切り替えてショートカットをクリックすると、アプリは上記のコードのように MainActivity に移動します。これを回避して、アプリをフォアグラウンドにする機会はありますかすでに作成されている場合は?

4

2 に答える 2

3

最後に、これを行う正しい方法を見つけました。一言で言えば、これはAndroidのバグであり、回避策が続く可能性があります

if(!isTaskRoot()){
    finish();
    return;
}

上記のコードを LauncherClass の onCreate に追加します

于 2013-08-30T05:36:00.993 に答える