Я сделал простое приложение для таймера. Я хочу добавить пользователю возможность создания ярлыка на домашнем экране, который будет переключать состояние приложения (время ожидания / время входа), но я не хочу, чтобы этот ярлык вообще открывал приложение на экране.
вот мой setupShortcut ()
private void setupShortcut() {
Intent shortcutIntent = new Intent(this, Toggle.class);
// shortcutIntent.setClassName(this, Toggle.class.getName());
shortcutIntent.putExtra(EXTRA_KEY, "ToggleShortcut");
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "ToggleShortcut");
Parcelable iconResource = Intent.ShortcutIconResource.fromContext(this, R.drawable.app_sample_code);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource);
setResult(RESULT_OK, intent);
}
Toggle.class - это действие, которое переключает состояние для меня. В манифесте у меня есть эти настройки
<activity android:name=".Toggle" android:exported="true" android:theme="@android:style/Theme.Translucent.NoTitleBar">
Как сейчас, я могу создать ярлык на главном экране, а затем нажать его. Первый раз, когда я нажимаю на него, он запускает действие Toggle и прекрасно его завершает, но также открывает действие TimeClock на экране. Если я нажму кнопку «Назад», я вернусь домой. Теперь я могу нажать этот ярлык, и он запустит действие Toggle, а не изменит экран. Прежде чем я добавил: shortcutIntent.addFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); Это открывало бы активность TimeClock каждый раз. Теперь это только в первый раз. Но я хочу, чтобы при нажатии на ярлык Toggle на экране ничего не отображалось. У кого-нибудь есть идеи, как от этого избавиться?