2

我是 android 编程新手,有以下问题。

我有一个调用另一个活动(屏幕)的活动(屏幕)。我可以通过创建一个 intext 并使用 putExtras 从 Activity2 传回值。然后,当我返回我的主要活动 1 时,我可以 (onActivityResult) 从返回的意图中检索字符串值对。

问题 1 如果 Activity2 完成,如果垃圾收集器启动,我在那里创建的 Intent 有什么可能被释放?或者在退出应用程序之前,android不会清除任何这样的内存。

问题 2)如果我然后回到 Activity2 并再次执行“新 Intent .....”,是否会分配更多内存,如果是这样,是否效率低下?

问题 3 - 有没有更好的方法将数据从被调用活动传递回调用活动,或者使用 Intent 和 putExtras 等唯一方法?

谢谢托尼

4

3 回答 3

2

在您要发送数据的班级中-

Intent intent = new Intent(context,NextClass.class); 
intent.putExtra("ACTIVITY_ID","Any value or variable" );
intent.putExtra("CUSTOMER_ID","Any Value or variable" );
startActivityForResult(intent, 0);

现在在接收类,让我们说 NextClass

Bundle extras=getIntent().getExtras();
String ACTIVITY_ID=extras.getString("ACTIVITY_ID");
String CUSTOMER_ID=extras.getString("CUSTOMER_ID");

通过使用这种方法,我们可以轻松地将数据从一个活动传递到另一个活动......

于 2012-04-11T11:50:05.280 回答
1

我的建议是。

如果您有已使用各种活动的数据,那么请改为使用 Intent 从 1 个活动传递数据到另一个活动。创建全局级别静态变量,然后通过应用程序访问该全局变量。

于 2012-04-11T11:07:31.460 回答
0

How much data are you going to pass between activities? Bytes, Kilobytes or Megabytes?

If its only bytes or some kilobytes then this is my answer:

  1. don't worry about the garbage collector.It will do its job
  2. yes more memory will be allocated. no it is not inefficient
  3. Intent and putExtras is the preferred way.

If the data is really large and you can save it to sd card and pass a file uri between activities.

于 2012-04-11T08:53:01.750 回答