Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何从一个活动发送多个响应_Android_Xamarin - Fatal编程技术网

Android 如何从一个活动发送多个响应

Android 如何从一个活动发送多个响应,android,xamarin,Android,Xamarin,我希望启动一个活动,允许它运行一段时间并发送多个响应。我该怎么做 编辑1:我希望启动一个Xamarin Android活动,并从中收到许多回复。这意味着在被调用的活动中,我想知道如何在不使用Finish()的情况下响应。我找到的文件没有说明如何做到这一点 编辑2:我有两个Xamarin Android活动。[1] 开始[2]。[2] 希望在未完成的情况下向[1]发送多个响应。我读过的所有文档都假定只有一个使用Finish()的响应。我错过了什么 编辑3(11月9日):可用文档描述了两个活动A1和

我希望启动一个活动,允许它运行一段时间并发送多个响应。我该怎么做

编辑1:我希望启动一个Xamarin Android活动,并从中收到许多回复。这意味着在被调用的活动中,我想知道如何在不使用Finish()的情况下响应。我找到的文件没有说明如何做到这一点

编辑2:我有两个Xamarin Android活动。[1] 开始[2]。[2] 希望在未完成的情况下向[1]发送多个响应。我读过的所有文档都假定只有一个使用Finish()的响应。我错过了什么

编辑3(11月9日):可用文档描述了两个活动A1和A2之间的简单关系:A1创建意图并将其传输给A2;A2返回(可选)将信息带回A1和es的意图

我问的是如何在没有A2完成的情况下将几个(信息包)从A2传输回A1@Gusman给了我一些示例代码,并向我展示了你可以做任何你想做的事情——只需忽略Android范例

这里是我在@Gusman的帮助下实现的一个简化版本;一个相当简单的活动间电报系统。这并不是本质上的特殊,只是在Android范例中(对我来说)出乎意料,正如可用文档中所解释的那样

(请注意,活动可能处于非活动状态(已停止),但仍可触发运行其代码的事件。)

公共静态类活动消息
{
公共静态事件EventHandler MessageEvent;
公共静态无效SendMessage(字符串发送方、字符串接收方、,
字符串消息类型,Bundle)
{
//包包含可选的传输数据
if(bundle==null){
bundle=新bundle();
}
bundle.PutString(“发送方”,发送方);
bundle.PutString(“接收方”,接收方);
bundle.PutString(“类型”,messageType);
MessageEventArgs args=newmessageeventargs();
args.bundle=bundle;
MessageEvent(发送方,args);
}
}
//在接收活动中
ActivityMessage.MessageEvent+=输入消息;
私有void IncomingMessage(对象某物,MessageEventArgs e)
{
Bundle=e.Bundle;
字符串接收器=bundle.GetString(“接收器”);
如果(接收者=“我”){
剂量测定(束);
}
}

在第三次编辑中回答。没有意识到问题已经越狱。

请澄清您的问题。“发送多个响应”是什么意思?您希望发送什么类型的响应。缩小你的问题范围我想返回调用活动,但不使用Finish()。请更准确地解释你的问题,否则你的问题可能会被关闭。如果选择否定我的问题,请告诉我答案?如果有什么我不明白或一些术语我不使用,这是没有帮助的。
public static class ActivityMessage
    {
        public static event EventHandler<MessageEventArgs> MessageEvent;

        public static void SendMessage(string sender, string receiver,
               string messageType, Bundle bundle)
        {
            // Bundle contains optional transmitted data 
            if (bundle == null) {
                bundle = new Bundle ();
            }
            bundle.PutString ("SENDER", sender);
            bundle.PutString ("RECEIVER", receiver);
            bundle.PutString ("TYPE", messageType);
            MessageEventArgs args = new MessageEventArgs ();
            args.bundle = bundle;

            MessageEvent (sender, args);
        }
    }

// In the receiving Activity
ActivityMessage.MessageEvent += IncomingMessage;

private void IncomingMessage(object something, MessageEventArgs e)
        {
            Bundle bundle = e.bundle;
            string receiver = bundle.GetString ("RECEIVER");
            if (receiver  == "ME") {
                DoSomething(bundle);
            }
        }