【问题标题】:Updating Data in Android Slices using onSlicePinned使用 onSlicePinned 更新 Android Slice 中的数据
【发布时间】:2019-11-07 06:35:43
【问题描述】:

由于无法在 onBindSlice() 内完成冗长的操作,我从 onSlicePinned() 方法从服务器获取数据,然后将其显示在切片中。但是我不明白这个函数是什么时候调用的。

我认为每次我们重新启动助手时都会调用它(即在杀死它后启动助手)。它在 Slice-Viewer 应用程序上进行测试时正在工作,每次我杀死切片查看器并重新开始时,都会调用 onSlicePinned() 以及 onSliceBind(),但不是以防万一谷歌助理。那么这是一个错误还是应该是这样? 如果这是 onSlicePinned() 应该如何工作,那么有什么方法可以在每次启动应用程序后调用 onBindSlice() 时获取数据。

【问题讨论】:

    标签: android app-actions android-slices


    【解决方案1】:

    要将内容从服务器加载到切片中,您应该遵循此处的延迟内容最佳实践:

    https://developer.android.com/guide/slices/templates#delayed_content

    tl;dr 是,你应该立即返回一些东西,然后去加载/处理你的内容,一旦内容准备好了,调用 notifyChange() 这将导致 onBindSlice() 被再次调用,你可以返回切入新内容。

    【讨论】:

    • 那么,什么时候调用 onSlicePinned() 和 onSliceUnpinned() 方法。当我们关闭 Google 助理时,切片会取消固定吗?
    • 如果应用程序想要将切片固定在视图中并让它提供更频繁的更新,则可以选择由显示切片的应用调用它们。目前,Google 智能助理对 Slices 的使用并不称之为 AFAIK。
    • 那么它预计会在未来的更新中出现还是会保持原样(即助手不会经常调用 onSlicepinned())?
    • 抱歉,我不知道 Google 助理是否或何时会使用它。我想这将取决于是否有使用这种功能的好的用例。
    猜你喜欢
    • 2014-06-09
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多