Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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_Performance_Android Intent_Android Activity_Xamarin - Fatal编程技术网

在Android中的活动和传递对象之间切换

在Android中的活动和传递对象之间切换,android,performance,android-intent,android-activity,xamarin,Android,Performance,Android Intent,Android Activity,Xamarin,我的android应用程序有很多活动 现在,每次启动新的活动时,我都会调用Finish() 因此,我以前的活动已完全销毁,当用户按下“后退”按钮时,我完成当前活动并开始前一活动的新意图 这使得我的应用程序速度非常慢,因为每次我启动活动时,它都必须运行OnCreate 如果我没有完成上一个活动,我如何在没有完成此活动的情况下调用上一个活动?用户将多次打开相同的活动 我还想在活动之间切换时使用.PutExtra() 这就是我现在正在做的: Intent intent = new Intent (th

我的android应用程序有很多
活动

现在,每次启动新的
活动时,我都会调用
Finish()

因此,我以前的活动已完全销毁,当用户按下“后退”按钮时,我完成当前活动并开始前一活动的新
意图

这使得我的应用程序速度非常慢,因为每次我启动活动时,它都必须运行
OnCreate

如果我没有完成上一个活动,我如何在没有完成此活动的情况下调用上一个活动?用户将多次打开相同的活动

我还想在活动之间切换时使用
.PutExtra()

这就是我现在正在做的:

Intent intent = new Intent (this, typeof(AddNewActivity));
var json = JsonConvert.SerializeObject (myDataObject);
intent.PutExtra ("myDataObject", json);
StartActivity (intent);
Finish ();
所以基本上,我的问题是,我如何才能不每次启动一个新的
活动
,而仍然在两个或多个活动之间传递数据


谢谢。

一个简单的解决方案就是不要每次进入新活动时都调用“finish()”。如果采用这种方法,则“后退”按钮将使用户返回到上一个活动的现有实例。因此,您可以绕过onCreate和其中任何耗时的操作

至于传递数据:使用意图。启动新活动时,请致电startActivityForResult。这将允许您:

  • 将数据传递给意图中的新活动
  • 完成新活动后,将数据传回原始活动

请参阅:

我理解这个概念,但当用户按back键时,我想用它发送一些数据。可能吗?这是我的主要问题。例如,如何发送json对象?请参阅我对问题的更新。startActivityForResult允许您在活动之间传递数据(当然使用意图)。好的,这看起来很有希望。我要试一试。谢谢,我有个问题。我对此很陌生,所以请忽略我的无知。假设我有4项活动。用户从一个转到另一个,它们在某个点都被打开。如果我没有杀死他们中的任何一个,而我在第四个,我怎么能回到第二个而不杀死任何一个活动?如果我创建一个新的
Intent
并调用
StartActivity
它将启动一个新的,对吗?只有在(a)用户采取了完成活动目的的操作(例如,按下表单上的“完成”按钮)或(b)用户按下Android后退按钮时,活动才应被视为完成。其他操作(如选择列表项以查看该项的详细信息)应导航到新活动,而无需完成启动活动。把它想象成一个网络浏览器(顺便说一句,Android设计就是基于这个)。通过单击链接向前导航类似于启动新活动。单击后退按钮完成页面/活动。