Xamarin.Mobile:基于任务的API标记为已过时

时间:2013-10-10 12:09:03

标签: android xamarin.android xamarin xamarin.mobile

最新版本的Xamarin.Mobile组件淘汰了一些基于任务的Android Android。发布说明简要评论:

  

鉴于任务的脆弱性<>基于活动生命周期现实的基于Android的API,异步API现在标记为[已废弃]专门针对Android。

有人可以解释这里脆弱的含义吗?

1 个答案:

答案 0 :(得分:3)

基本上,跨应用程序生命周期边界使用Task会遇到麻烦。当相机Activity在Android上启动时,您实际上正在启动一个全新的应用。您的应用程序不再在前台运行,因此Android完全有权终止您的应用程序并在相机返回时重新启动它。如果发生这种情况,您的Task实例已被销毁,因此您拥有的任何awaitContinueWith将永远无法执行。这不是Task / Android问题,它只是Xamarin.Mobile中的一个设计缺陷。

因此,不赞成使用OnActivityResult的魔术API,因为它是正确处理这种情况的唯一方法。如果您发现,新API GetMediaFileExtraAsync仍会返回Task<MediaFile>

(来源:我写过Xamarin.Mobile)。