java.io.Serializable 或
android.os.Parcelable。網路世界裡的溝通,是透過各式各樣的Protocol來協助,送方根收定均定義好資料流的格式,收方依規則傳遞,送方就可以依規則反解回來。
Serializable就如同資料流概念,送方將物件透過定義好的格式進行分解傳遞,收方則可以組回成物件來直接使用,十分方便。可惜這方法有個缺陷是,基本上要相同語言才有相同的語言,才能這樣執行(每家語言序列化的方式都不一樣)。
- Serializable
- Implements Serializablepublic class Result implements java.io.Serializable {
private int x= 0;
public void setX(int x)
{
this.x = x;
}
public int getX()
{
return x;
}
} - 傳遞的 Activity
- 接收的Activity
Intent intent = new Intent();
Intent intent = new Intent();
Bundle bundle = new Bundle();
Result result = new Result();
result.setX(5);
bundle.putSerializable("Result", result);
intent.putExtras(bundle);
intent.setClass(FromActivity.this, ToActivity.class);
startActivity(intent);
Intent intent = new Intent();
Bundle bundle = new Bundle();
Result result = new Result();
result.setX(5);
bundle.putSerializable("Result", result);
intent.putExtras(bundle);
intent.setClass(FromActivity.this, ToActivity.class);
startActivity(intent);
Result result = getIntent().
getExtras().getSerializable("Result");
result.getX();
getExtras().getSerializable("Result");
result.getX();
Reference:
[1] Android Intent&Bundle 傳遞資料(包含傳遞自定義物件)
[2] Serializable序列化
[3] Java 序列化/反序列化 (Serialization/Deserialization)
沒有留言:
張貼留言