【问题标题】:Why the activity under google assistant go onPause in Android TV?为什么谷歌助手下的活动在Android TV中会出现onPause?
【发布时间】:2021-03-03 17:17:43
【问题描述】:

我正在安卓电视上开发一个应用程序。 我们正在讨论当 Google Assistant 处于活动状态时活动继续暂停的原因。 我们发现这个问题是在一天之内突然发生的。

在跟踪这个问题多天后,我们发现我们的应用程序上的助手页面封面作为一个活动。 这就是我的应用程序继续暂停的原因。 但是我想知道为什么它会突然变成一个活动。

这是我对活动的观察。 我使用“adb shell dumpsys activity”来检查活动状态。

没有去onPause的情况

Running activities (most recent first):
    Run #0: ActivityRecord{2d9fe0 u0 com.google.android.katniss/com.google.android.apps.tvsearch.app.launch.trampoline.SearchActivityTrampoline t12 f}
Running activities (most recent first):
    Run #0: ActivityRecord{32ee7d7 u0 com.sv.n973796_home/.atv.ui.HomeActivity t5}
Running activities (most recent first):
    Run #0: ActivityRecord{f0c9842 u0 com.sv.n973796_home/.LauncherMainActivity t3}

进入 onPause 状态

Running activities (most recent first):
    Run #0: ActivityRecord{bdce69a u0 com.google.android.katniss/com.google.android.apps.tvsearch.results.activity.SearchResultActivity t825}
Running activities (most recent first):
    Run #2: ActivityRecord{87c5fd1 u0 com.sv.n973796_home/.common.ui.HomeActivity t817}
    Run #1: ActivityRecord{28d1d6c u0 com.sv.n973796_home/.LauncherMainActivity t817}

我的问题在这里:

  1. 是否有任何关于此更改的文档?(在“com.google.android.apps.tvsearch.app.launch.trampoline.SearchActivityTrampoline”和“com.google.android.apps.tvsearch.results.activity.SearchResultActivity”之间)

  2. 这个问题与我的 SDK 版本有关吗?(gradle 或 SDK 管理器中的 sdk 版本?)

  3. 有没有办法检查 com.google.android.katniss 的版本?我可以选择吗?

【问题讨论】:

    标签: android-tv google-assistant-sdk


    【解决方案1】:
    1. 没有关于此更改的具体文档。这是因为 ATV 助手的实施方式发生了变化。

    2. 没有。这完全取决于设备上的 ATV Assistant 版本。

    3. 您可以在系统设置(应用程序 -> 所有应用程序 -> 显示系统应用程序,Google)中手动检查 ATV 助手版本。您可以通过检查包管理器以编程方式确定设备上的版本(我不记得这是否需要权限),但您不想这样做。您不能保证在不同版本中的行为会相同,并且会定期发布更新。

    我会问您在触发(或未触发)onPause 时遇到什么具体问题,然后从那里开始,因为 ATV 助手并不是可以调用 onPause 的唯一原因。例如,如果您的应用程序处理视频播放,您可能希望在 Android 6.0 及更早版本的 onPause() 中停止播放器,然后在 onResume() 中,您将在调用 onPause() 时检查它是否正在播放,如果它再次触发播放曾是。您不应该关心是否由于助手进入前台或操作系统显示警报对话框而调用了 onPause()。在之后的 Android 版本中,您可以简单地在 onStop/onStart 中添加该逻辑,因为 onStop() 生命周期方法可以保证在 Activity 不再可见时被快速调用。

    【讨论】:

    • 感谢您的回复。我可以理解将行为从 onPause 更改为 onStop 以配合这种更改的解决方案。但问题应该是我们的“客户”想知道改变的真正原因。顺便说一句,我们遇到的问题是客户端希望在助手处于活动状态时让电视播放器正常播放视频。
    • 我们通过为它创建一个异常来解决这个问题,因为客户希望对代码进行最少的更改。
    猜你喜欢
    • 2021-05-01
    • 1970-01-01
    • 2020-12-31
    • 2011-11-06
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    相关资源
    最近更新 更多