Jetpack compose для рабочего стола: запускать приложение в фоновом режиме?

Я новичок в создании реактивного ранца. Я провел много исследований по этой теме, но не нашел ничего полезного. Я хочу добиться того, чтобы, если я закрою окно, мое приложение останется в фоновом режиме и его можно будет снова открыть из панели задач. Мне удалось создать лоток, но когда я закрываю окно приложения, оно закрывает все приложение. Как я могу этого добиться?

Еще я хочу слушать глобальные сочетания клавиш. Как и в электроне, я могу определить сочетание клавиш, например ctr+space, и оно будет делать то, что я хочу.

Это приложение будет только в Windows и MacOS. Меня сейчас не волнует андроид

1 ответ

Решение

Мне удалось в этом разобраться. Основной функцией должно быть приложение, а не окно.

      @OptIn(ExperimentalComposeUiApi::class)
fun main() = application { 
    
}

И если приложение содержит и окно, и лоток, оно продолжит работу в фоновом режиме и не закроется после закрытия окна.

      @OptIn(ExperimentalComposeUiApi::class)
fun main() = application {

    Tray(
        icon = BufferedImage(24, 24, 1),
        menu = {
            Item(
                "Exit",
                onClick = { exitProcess(1) }
            )
        }
    )

    Window{
        Text("Hello World")
    }

}
Другие вопросы по тегам