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-17 17:49:53
- 链接: https://eliorfoy.github.io/2025/07/10/大三下/Avalonia使用.NET For Anroid API(以文件下载为例)/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
        评论