在Android活动之间共享数据的两种不同方法

时间:2014-03-26 13:01:08

标签: android-intent android-activity bundle

我注意到可以使用两种方法在活动之间共享数据!

第一种方法:

 Intent myIntent = new Intent (view.getApplication,myActivity.class);
 myIntent.putExtra("data","value");

第二种方法:

Intent myIntent = new Intent (view.getApplication,myActivity.class);
Bundle myBundle = new Bundle();
myBundle.putString("data","data");
myIntent.putExtra(myBundle);

我的问题是这两种方法实际上有什么区别?

1 个答案:

答案 0 :(得分:0)

Intent.java源代码中可以看出,传递给Intent的数据始终序列化为Bundle个对象。差异是"how your data will be serialized/deserialized"

public Intent putExtra(String name, String value) {
    if (mExtras == null) {
        mExtras = new Bundle();
    }
    mExtras.putString(name, value);
    return this;
}

public Intent putExtra(String name, Bundle value) {
    if (mExtras == null) {
        mExtras = new Bundle();
    }
    mExtras.putBundle(name, value);
    return this;
}