如何在Xamarin.Android

时间:2018-05-15 06:32:17

标签: android android-intent callback xamarin.android

我尝试实现一个独立于平台的包装器,用于共享带有文件名和Action作为回调的文件。尽管它确实有效,但我根本不满足于我的Android解决方案。

我目前正在做的是:我正在使用我的MainActivity注册我的回调,它返回一个ID,我可以使用它来识别回调

int callbackId = MainActivity.Instance.RegisterCallback(completionHandler);

然后我用

开始ActionShare意图
MainActivity.Instance.StartActivityForResult(Intent.CreateChooser(intent, "Select App"), 123 | (callbackId << 8));#

123是我的行动标识符。

在我的MainActivity OnActivityResult中,我正在使用

来调用我的回调
var callbackId = (requestCode & 0b1111111100000000) >> 8;

if (this.RemoveCallbackById(callbackId, out var callback))
{
    callback();
}

在Xamarin.Android中有更好的方法实现回调吗?我相信必须有,但是只限于传递给StartActivityForResult的{​​{1}}只有一个16位整数,这种可能性似乎对我来说非常有限。

0 个答案:

没有答案