flutter - 一段时间后,我想用android_alarm_manager插件在后台关闭audio_service
问题描述
一段时间后,我想用android_alarm_manager插件在后台关闭audio_service 。我怎么解决这个问题?
当我尝试执行此操作时,出现以下错误。
[错误:flutter/lib/ui/ui_dart_state.cc(157)] 未处理的异常:MissingPluginException(在通道 ryanheise.com/audioService 上找不到方法停止的实现)
我的代码如下。
动作飞镖
FlatButton(
onPressed: () async {
await AndroidAlarmManager.oneShot(Duration(minutes: _minute.floor().toInt()), 0, backgroundCallback);
Navigator.pop(context);
},
child: Text(S.of(context).set),
)
主要.dart
void backgroundCallback() async {
AudioService.connect();
AudioService.stop();
}
void main() async {
WidgetsFlutterBinding.ensureInitialized();
init();
await sl<DotEnv>().load('.env');
//get theme
bool _isDarkTheme = await sl<SharedPreferenceHelper>().isDarkTheme() ?? false;
if (Platform.isAndroid) {
AndroidAlarmManager.initialize();
}
runApp(MainApp());
}
Flutter 和 Dart 版本:
[√] Flutter (Channel stable, v1.12.13+hotfix.9, on Microsoft Windows [Version 10.0.18362.720], locale tr-TR)
• Flutter version 1.12.13+hotfix.9 at D:\flutter
• Framework revision f139b11009 (11 days ago), 2020-03-30 13:57:30 -0700
• Engine revision af51afceb8
• Dart version 2.7.2
解决方案
你有正确的想法,虽然你必须等到它使用“等待”实际连接:
await AudioService.connect();
AudioService.stop();
为此,您还需要升级到 CHANGELOG 中提到的 0.9.0 或更高版本:
- 允许来自后台上下文的连接(例如 android_alarm_manager)。
推荐阅读
- r - 删除字符串中的数字 - R
- java - 如何在jdk11中实现java jdk14记录?
- python - 通过使用 tkinter 按钮命令,如何将 var 从函数传递到主函数中的本地 var
- c++ - 如何正确比较c ++中的字符串?
- css - 无法修复 CSS 网格规则上的 CSSLint 错误“预期的 RBRACE”
- python - ju如何在python中找到大于1或0的缺失值的百分比
- lua - 在 Lua 中计算值以提高精度
- reactjs - 反应输入警告:组件正在将文本类型的受控输入更改为不受控制
- r - 将巨大的数据集(大约 36 GB 和 18000 列,csv)导入 R
- mqtt - 如何使用 paho mqtt c 的 MQTTAsync