Glance 小部件 actionStartActivity 无法正常工作

问题描述 投票:0回答:2

我正在尝试实现一个概览小部件并在单击按钮时启动一个活动。但它似乎对我来说不能正常工作。这是我的代码:

 DistributionDateView(context, deliveryDates, postalCode) {
                println("it should work i think")
                actionStartActivity(AddParcelManuallyActivity.newIntent(context = context))
                actionStartActivity<AddParcelManuallyActivity>()
                actionStartActivity(AddParcelManuallyActivity::class.java)
}

其中DistributionDateView有一个onclick。 我尝试了 3 种不同的方法,“我认为它应该有效”正在日志中打印......但什么也没有发生。 我在这里做错了什么。

android android-activity widget glance-appwidget glance
2个回答
1
投票

这里有同样的问题(使用 androidx.glance:glance-appwidget:1.0.0-beta01)。 我的解决方法是以通常的方式启动 Activity:

            Intent(context, MyActivity::class.java).apply{
            flags = FLAG_ACTIVITY_NEW_TASK
            context.startActivity(this)
        }

重要的是使用“FLAG_ACTIVITY_NEW_TASK”,因为您是从 Activity 外部调用 startActivity()


0
投票

actionStartActivity
只是返回接口
StartActivityAction
的对象。它应该用在一些扫视功能中。它不是函数
context.startActivity
的替代品。

//source code in package androidx.glance
fun GlanceModifier.clickable(onClick: Action): GlanceModifier =
    this.then(ActionModifier(onClick))

//source code in package androidx.glance
@Composable
fun Button(
    text: String,
    onClick: Action,
    modifier: GlanceModifier = GlanceModifier,
    enabled: Boolean = true,
    style: TextStyle? = null,
    colors: ButtonColors = ButtonDefaults.buttonColors(),
    maxLines: Int = Int.MAX_VALUE,
)

一个例子是

@Composable
fun MyContent() {
    Image(
        provider = provider,
        modifier = GlanceModifier
            .clickable(actionStartActivity<MainActivity>()),
        contentDescription = ""
    )
}
© www.soinside.com 2019 - 2024. All rights reserved.