Android 如何从一个活动发送多个响应
我希望启动一个活动,允许它运行一段时间并发送多个响应。我该怎么做 编辑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范例中(对我来说)出乎意料,正如可用文档中所解释的那样 (请注意,活动可能处于非活动状态(已停止),但仍可触发运行其代码的事件。)Android 如何从一个活动发送多个响应,android,xamarin,Android,Xamarin,我希望启动一个活动,允许它运行一段时间并发送多个响应。我该怎么做 编辑1:我希望启动一个Xamarin Android活动,并从中收到许多回复。这意味着在被调用的活动中,我想知道如何在不使用Finish()的情况下响应。我找到的文件没有说明如何做到这一点 编辑2:我有两个Xamarin Android活动。[1] 开始[2]。[2] 希望在未完成的情况下向[1]发送多个响应。我读过的所有文档都假定只有一个使用Finish()的响应。我错过了什么 编辑3(11月9日):可用文档描述了两个活动A1和
公共静态类活动消息
{
公共静态事件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);
}
}