Avalonia使用.NET For Anroid API(以文件下载为例)

1. 项目结构
典型Avalonia解决方案结构:
1 | MyApp/ |
服务注册与调用流程
1 | [Android项目] [共享项目] |
2. 在共享项目中定义接口
1 | // MyApp/Services/IFileDownloadService.cs |
3. 在Android项目中实现接口
1 | // MyApp.Android/Services/AndroidFileDownloadService.cs |
4. 在Android项目中注册服务
1 | // MyApp.Android/MainActivity.cs |
5. 在共享项目中添加服务注册支持
1 | // MyApp/App.axaml.cs |
6. 在ViewModel中使用下载服务
1 | // MyApp/ViewModels/MainViewModel.cs |
7. 在XAML中添加下载按钮
1 | <!-- MyApp/Views/MainView.axaml --> |
8. 完整流程
- 应用启动
-
首先Android项目的MainActivity初始化
-
调用App.RegisterPlatformServices()注册Android服务
- 服务注册
-
AndroidFileDownloadService注册为IFileDownloadService的实现
-
这个服务被添加到App类中的静态_services集合
- 框架初始化
-
App.OnFrameworkInitializationCompleted()被调用
-
_serviceProvider从_services构建
-
ViewModel被创建和注册
- ViewModel获取服务
-
MainViewModel构造函数中调用App.GetService
() -
返回之前注册的AndroidFileDownloadService实例
- 调用下载方法
-
用户点击UI中的下载按钮
-
ViewModel调用_downloadService.DownloadFileAsync()
-
实际执行的是AndroidFileDownloadService中的实现
- 标题: Avalonia使用.NET For Anroid API(以文件下载为例)
- 作者: EliorFoy
- 创建于 : 2025-07-10 12:33:37
- 更新于 : 2025-07-10 12:40:24
- 链接: https://eliorfoy.github.io/2025/07/10/大三下/Avalonia使用.NET For Anroid API(以文件下载为例)/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论