Development/Android

[Compose] Glance 위젯에서 특정 Activity 열기

SeungYong.Lee 2025. 4. 29. 14:46
반응형

- 기존의 RemoteViews XML 기반 위젯에서는 PendingIntent를 통해 Activity를 열었다.

 

- 하지만 Glance에서는 actionStartActivity() 함수를 사용한다.

fun actionStartActivity(
    intent: Intent,
    parameters: ActionParameters = actionParametersOf(),
): Action = StartActivityIntentAction(intent, parameters, null)

- Glance 위젯에서 특정 Activity 시작하기 위한 Action 객체를 생성하는 함수다

 

- 즉, Glance Modifier.clickable 안에서 사용할 있는 동작(Action)을 만들어서 연결해 준다.

 

- GlanceModifier clickable의 onClick에 연결해 주면 된다.

.clickable(
    onClick = actionStartActivity(
        Intent(context, MainActivity::class.java).apply {
            data = Uri.parse(MainActivity.EXTRA_FROM_WIDGET)
            flags = Intent.FLAG_ACTIVITY_NEW_TASK
        }
    )
)
반응형