IPC机制
IPC:进程间通信
安卓中的多进程模式
开启多进程
在清单文件中添加:android:process
<activity android:name=".Main2Activity" android:process=":p1"></activity>
代表该activity以包名.p1作为进程名进行运行
多线程造成的问题
- 静态成员、单例模式完全失效
- 线程同步机制失效
- SharedPrerences可靠性下降
- Application多次创建
IPC
Serializable接口
java当中自带的序列化接口
Parceable接口
实现接口:
public class User implements Parcelable {
    private String name;
    private int age;
    protected User(Parcel in) {
        name = in.readString();
        age = in.readInt();
    }
    // 省略构造器
    public static final Creator<User> CREATOR = new Creator<User>() {
        @Override
        public User createFromParcel(Parcel in) {
            return new User(in);
        }
        @Override
        public User[] newArray(int size) {
            return new User[size];
        }
    };
    @Override
    public int describeContents() {
        return 0;
    }
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(name);
        dest.writeInt(age);
    }
    //省略toString
}
这样,就可以直接在Intent中传送User类型的对象了:
Intent intent = new Intent();
                intent.setClass(MainActivity.this,Main2Activity.class);
                intent.putExtra("user",new User("小明",15));
                startActivity(intent);
安卓中的IPC方式
- Bundle
- 文件共享 SharedPreferences本质:XML
- Messenger
- AIDL
- ContentProvider