google 助手下的 activity 为什么会在 Android 电视中暂停?

Why the activity under google assistant go onPause in Android TV?

我正在 android 电视上开发应用程序。 我们正在讨论当 Google 助手处于活动状态时 activity 继续暂停的原因。 一天突然发现这个问题

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

这是我对 activity 的观察。 我使用“adb shell dumpsys activity”来检查 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}

进入暂停状态

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的版本吗?我可以选择吗?

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

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

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

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