Android关于对象(Object)在activity间传递的变化研究

  • 情况一:

activity1中有个list集合,list包含多个数据对象;然后从activity1跳到activity2,并且把list中的第一个object传给activity2,分别在activity1和activity2中打印出list中的第一个

object的hash值,结果不一样;

结论:list中的object在activity间传递的是object的备份数据

  • 情况二:
通过情况1可以猜想:当把一个list集合从一个activity传递到另一个activity的时候,两个activity中的list集合在内存中指向的也不是同一个数据;即第二个activity中的list数据是第一个activity list数据的复制拷贝。所以在第二个activity中对通过对getIntent().getExtra()得到的数据进行修改更新并不会影响到activity1的list数据。事实上通过测试打印的hashcode值不一样也可以看出猜想是对的。

结论:list在activity间传递也是备份数据

注:以上只是为了个人研究做个记录,因为有时自己真的有点迷糊数据的指向。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 JavaScript 和 Android实现对象传递,可以使用 WebView 组件提供的 addJavascriptInterface() 方法。这个方法可以让你在 Android 代码中创建一个对象,并且将这个对象注册到 WebView 中,使得 JavaScript 可以调用这个对象的方法和属性。 以下是一个示例: 1. 首先,在 Android 中创建一个 Java 类,该类包含一个 Object 类型的属性和一个方法: ```java public class MyObject { private Object data; public MyObject(Object data) { this.data = data; } public Object getData() { return data; } } ``` 2. 在 Activity 中的 onCreate() 方法中创建 MyObject 实例,并将其注册到 WebView 中: ```java WebView webView = findViewById(R.id.webView); webView.getSettings().setJavaScriptEnabled(true); MyObject myObject = new MyObject(new Person("John", 30)); webView.addJavascriptInterface(myObject, "myObject"); ``` 在这个例子中,我们创建了一个 MyObject 实例,并且将其注册到 WebView 中。JavaScript 可以通过 "myObject" 对象来调用 MyObject 中的方法和属性。 3. 在 JavaScript 中调用 MyObject 中的方法和属性: ```javascript var data = myObject.getData(); console.log(data); ``` 在这个例子中,我们通过 "myObject" 对象来调用 MyObject 中的 getData() 方法,该方法返回一个包含 Person 对象Object 类型的属性。在 JavaScript 中,我们可以直接访问这个属性并打印它的内容。 需要注意的是,为了保证安全性,我们需要在注册对象时指定一个名称,并且只能暴露需要让 JavaScript 访问的方法和属性。在上面的示例中,我们将对象的名称设置为 "myObject",并且只暴露了一个 getData() 方法。这样可以避免潜在的安全问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值