Android使用Intent.putSerializable()进行数据传递,或者使用Bundle进行数据传递,实质上都是进行的Serializable数据的操作,说白了都是传递的原数据的一份拷贝,因此通过对象的传递来控制Android应用是不现实的

见下面的代码

import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import com.feng.androidbundle.activity.GetBundleActivity;import com.feng.androidbundle.bean.DataBean;public class AndroidbundleActivity extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                // 定义一个Bundle按键        Button gotoBundle = (Button)findViewById(R.id.btnBundle);        // 设置监听事件        gotoBundle.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v) {Intent intent = new Intent();intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.setClass(getApplicationContext(), GetBundleActivity.class);DataBean temp  = new DataBean();temp.setID(1);temp.setName("张三");temp.setAddress("xx市xx路xx号");temp.setMoblie("159xxxxxxxx");Log.i("AndroidbundleActivity", "新建时候的地址" + temp);Bundle bundle = new Bundle();bundle.putSerializable("UserInfo", temp);// 设置intentintent.putExtras(bundle);// 发送ActivitygetApplicationContext().startActivity(intent);}                });    }}
在另外一个Activity中将数据取出来

import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.Log;import com.feng.androidbundle.R;import com.feng.androidbundle.bean.DataBean;public class GetBundleActivity extends Activity {@Override    public void onCreate(Bundle savedInstanceState) {// 初始化BundleActivity        super.onCreate(savedInstanceState);        setContentView(R.layout.bundle);                // 获取意图        Intent intent = getIntent();        Bundle bundle = intent.getExtras();                // 获取对象        DataBean temp = (DataBean) bundle.get("UserInfo");Log.i("GetBundleActivity", "收到的地址" + temp);    }}
日志的打印结果

12-19 02:42:49.356: I/AndroidbundleActivity(230): 新建时候的地址com.feng.androidbundle.bean.DataBean@44c24968
12-19 02:42:49.417: I/GetBundleActivity(230): 收到的地址com.feng.androidbundle.bean.DataBean@44c33528

由上面的日志可以看出,使用Bundle进行数据的传递,实质上是拷贝的传递






更多相关文章

  1. Android里监视数据库的变化 registerContentObserver 接口
  2. android 之json对象解析并展示(含json解析源码)
  3. Android下的数据储存方式(三)
  4. android中将数据写入手机内存和sdcard中的文件
  5. Android settings.db数据库中添加一条新的默认配置项
  6. Android之解析Json数据
  7. Notification中Intent携带数据重复问题

随机推荐

  1. ExpandableListView的使用解析
  2. 怎样在android实现uc和墨迹天气那样的左
  3. Android在应用中依据包名启动另外一个APP
  4. Android 开发之旅:短信的收发及在android
  5. 第一行代码Android学习(十)
  6. android 禁用屏蔽系统状态栏(statusbar)
  7. Android(安卓)干货集
  8. android间隔1000毫秒处理点击
  9. JavaWeb + mySQL + Android(安卓)实现And
  10. 【Android】一步注册广播接收器