xamarin - 如何确保 iOS 正确挂起 Xamarin Forms 应用程序(AVAudioSessionCategoryPlayback 模式)以防止电池耗尽?
问题描述
我有一个在 AVAudioSessionCategory = Playback 模式下运行的 Xamarin Forms 应用程序,它工作得非常好,正在播放背景音频,甚至我的计时器也在后台运行,这在播放期间很好。
如何确保在用户决定停止播放音频后(通过按下应用程序内部的按钮或按下锁定屏幕上的暂停按钮)我的应用程序将进入暂停状态并且不会耗尽电池?
有没有办法强制我的应用程序暂停或验证它是否有?
附带说明:在 App.xaml.cs 中挂钩 OnSleep 方法是不够的,因为每次应用程序进入后台时都会调用它,即使它正在播放音频、我的计时器正在运行、HTTP 调用正在运行等。
更新:
今天有个有趣的发现:
- 当应用程序以调试模式(通过 WiFi)从 Visual Studio 启动时,计时器继续在后台运行。
- 当应用程序在发布模式下进入后台时,计时器似乎会被操作系统 (iOS) 自动挂起。
我的结论是:也许整个问题在于 Xamarin 添加到应用程序以确保 Visual Studio 和应用程序之间的通信的“框架”中的某个地方?(控制台、断点等)这将是一个合乎逻辑的解释。
解决方案
推荐阅读
- python - 为什么BST(二叉搜索树)这么慢
- java - 在通用 Cplex 回调中访问分支和切割节点 ID
- graphql - `Cannot use e "__Schema" from another module or realm.` 和 `使用 ApolloClient 复制 "graphql" 模块
- android - 将图像写入文件夹时如何刷新文件夹?
- c# - dotnet build 命令忽略 .editorconfig
- flutter - Dart 或 Flutter 中的 JSON.stringify() 相等方法
- csv - C# CSVHelper:在 BadDataException 读取器不继续下一行之后
- kotlin - 带箭头:如何应用 (X)->IO 类型的转换
到序列类型的数据 获取 IO >? - javascript - 情感 - 将样式对象传递给外部库
- c# - 我的游戏角色应该传送到鼠标指针,但它传送到远离我的鼠标指针