前言
本章主要讲解Android中IPC的通信方式。。。
1.Bundle
Bundle实现了Parcelable接口,且四大组件中Activity、Service、Receiver都支持在Intent中传递Bundle。传输的数据必须能够被序列化,如基本类型、实现了了Parcelable以及Serializable接口的对象。
接下来使用Bundle在A和B之间进行跨进程数据传递:
A的AndroidManifest.xml配置文件:
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
B的AndroidManifest.xml配置文件:
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
android:exported="true" 总体来说它的主要作用是:是否支持其它应用调用当前组件。
默认值:如果包含有intent-filter 默认值为true; 没有intent-filter默认值为false。
A和B中添加实现序列化Parcelable接口的实体类User.kt:(必须位于同名包下)
package com.wdl.model
import android.os.Parcelable
import kotlinx.android.parcel.Parcelize
import java.io.Serializable
/**
* author: wdl
* time: 2018/10/15 14:58
* des: TODO
*/
@Parcelize
data class User constructor(var userName: String, var age: Int) : Parcelable,Serializable
A