我有一个看起来像这样的动态应用快捷方式
ShortcutInfo composeShortcut = new ShortcutInfo.Builder(App.getInstance(),
getString(R.string.compose_shortcut_id))
.setShortLabel(getString(R.string.compose_app_shortcut_short_label))
.setLongLabel(getString(R.string.compose_app_shortcut_long_label))
.setDisabledMessage(getString(R.string.compose_app_shortcut_disabled_message))
.setIcon(Icon.createWithResource(App.getInstance(), R.drawable.compose_icon))
.setIntent(new Intent(context, ComposeActivity.class))
.setAction(Intent.ACTION_DEFAULT)
.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP))
.build();
shortcutManager.setDynamicShortcuts(Arrays.asList(composeShortcut));
第一次单击此快捷方式时,它打开ComposeActivity
得很好,但之后就不行了,我必须杀死该应用程序,然后它才能再次运行一次。
所需的流程- 每当我单击应用程序快捷方式时,ComposeActivity 都应该打开。如果应用程序已经在运行,那么仅当当前 Activity 还不是 ComposeActivity 时,ComposeActivity 才应该在当前 Activity 之上打开。
当前流程- 我第一次按下应用程序快捷方式时,Compose 活动打开得很好,但在那之后就不行了。应用程序仅在此之后恢复。我必须终止该应用程序并再次单击它的快捷方式以打开 ComposeActivity。
更多信息 - AndroidManifest 中的 Compose Activity 定义如下:
...
<activity
android:name=".shared.publish.compose.view.activity.ComposeActivity"
android:screenOrientation="portrait"
android:theme="@style/compose_theme"
android:windowSoftInputMode="stateVisible|adjustResize"/>
<activity
android:name=".shared.activity.SplashScreenActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/splash_screen_theme">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
...