小编yan*_*ich的帖子

如何在 Android 上的 Xamarin C# 中等待 OnActivityResult

我通过 Xamarin 在 Android 上使用 MvvmCross,但遇到了问题。我创建了一个名为 IFileExplorerService 的核心服务接口。

此界面的目标是打开一个打开的文件对话框并选择一个文件,无论设备是什么(Windows 或 android)。

在 Android 上,我只需使用 OnActivityResult 和 Intents,就可以轻松地通过视图轻松做到这一点,而无需我的界面。

但从我的角度来看,我无法让它工作,因为接口实现是在设置中注册的单例,当我从我的视图模型调用它时,绝对没有人来处理 OnActivityResult。

我尝试使我的 FileExplorer 实现从 Activity 或 MvxActivity 继承,这样我的 FileExplorer 可以覆盖 OnActivityResult,但这失败了。

我尝试使用 StartActivity(typeof(FileExplorer)) 但这显然会失败,因为它不会是在 MvvmCross 中注册的将启动的单例。

有人对此有任何想法/评论/问题/建议来帮助我吗?

到目前为止,这是我的代码:

public class FileExplorerService : IFileExplorerServiceMock
    {
        string _addedFileName;
        public static int REQUEST_FILE_CAPTURE = 2;
        private bool _hasMediaBeenAdded;
        private TaskCompletionSource<String> GetFileTask;
        public Activity activity;
        public FileExplorerService()
        {
            GetFileTask = new TaskCompletionSource<string>();
        }


        private void DispatchSelectFileIntent()
        {
            Intent Intent = new Intent();
            Intent.SetType("*/*");
            Intent.SetAction(Intent.ActionGetContent);

            activity.StartActivityForResult(Intent.CreateChooser(Intent, "Select …
Run Code Online (Sandbox Code Playgroud)

android asynchronous android-activity mvvmcross xamarin

2
推荐指数
1
解决办法
4433
查看次数