gpt4 book ai didi

android - 我使用 putExtra() Intent 方法传递给另一个 Activity 的数据存储在哪里?

转载 作者:行者123 更新时间:2023-11-29 01:00:00 25 4
gpt4 key购买 nike

我的问题是:

1 - 如果我将数据发送到另一个 Activity ,它存储在哪里?

2- 将 putExtra() 方法的参数键作为内置预定义字符串(如 EXTRA_TEXT)和使用随机名称的键之间有什么区别像“我的信息”IE这段代码有什么区别

 public void go(View view)
{
String mytxt="hellow";
Intent i=new Intent(this , SecondActivity.class);
i.putExtra(Intent.EXTRA_TEXT , mytxt);
startActivity(i);
}

和这段代码

 public void go(View view)
{
String mytxt="hellow";
Intent i=new Intent(this , SecondActivity);
i.putExtra("mydata" , mytxt);
startActivity(i);
}

3-android如何使用putExtra方法的关键部分来引用我的数据

4- getExtra() 方法如何从获取数据的地方工作

我认为 3 和 4 本质上与上述其他部分相关,但我想弄清楚我所有的问题

提前致谢

最佳答案

1 - If I send data to another activity where does it stored ?

我认为有几种不同的方式可以回答这个问题,但最直截了当的是:没关系。

当您使用 Intent向另一个 Activity 发送数据,重要的是另一个 Activity 将收到 Intent用您发送的数据填充的对象。 如何发生这种情况的确切机制是您(作为开发人员)不应该关心的事情。

唯一值得一提的异常(exception)是 Intent 中的数据可能(具体取决于您在做什么)受到“Binder 事务大小限制”的约束;您的数据在某个时候被序列化和传输,如果数据太大,这将失败。

2- what is the difference between put the parameter key of putExtra() method as builtin predefined string like EXTRA_TEXT and put a key with a random name like "mymessage"

没有技术差异。事实上,Intent.EXTRA_TEXT被定义为一个简单的字符串本身 ( "android.intent.extra.TEXT" )。

实际区别在于 Intent.EXTRA_TEXT是任何开发人员都可以使用的定义明确、已知 的值。如果我正在编写一个聊天程序,并且我想让其他应用程序打开我的应用程序并传递消息文本,我可以告诉用户我将查找 Intent.EXTRA_TEXT对于这些数据,每个人都可以轻松使用。

在您自己的应用程序中,使用什么字符串作为 putExtra() 中的键并不重要称呼。只要您以后使用相同的字符串来查找它,您就可以使用任何您想要的东西。这里唯一需要注意的是确保您不会意外地将相同的 key 用于同一 Intent 中的两个不同值。 .

3- how does android use the key part to of putExtra method to refer to my data

事实并非如此。 android 框架所做的就是获取一组键值对,将它们序列化(如果需要),并将它们传输到另一个 Activity 。然而,其他 Activity 随后可以使用这些键来查找值。这就是为什么例如Intent.EXTRA_TEXT很酷;这是一个定义明确的键,任何人都可以使用它来查找数据,并指望另一端的调用者使用该已知键在 map 中放置一些东西。

4- how does getExtra() method work from where it get the data

我猜你可以说数据来自应用程序的内存。

你可以想到Intent对象真的很花哨 Map<String, ?> .同样的方式你可以写 String s = (String) map.get("key") , 你可以写 String s = intent.getStringExtra("key") .

关于android - 我使用 putExtra() Intent 方法传递给另一个 Activity 的数据存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51956716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com