为什么需要将webView放在独立进程

webView独立进程需要注意什么
如何声明一个独立进程
在默认情况下,同一应用的所有组件都在相同的进程中运行。
在Manifest中可以设置各组件 (
跨进程的方式
在android当中提供了2种方式实现。
一种是Messenger, 另一种是Aidl.
Messenger
由于Messenger是采用消息队列的方式实现,所有接受和发送的时候都需要Handler协助。
服务端
public class MessengerService extends Service {
public static final int GET_DATA = 1;
public static final int SET_DATA = 2;
Messenger messenger = new Messenger(new ServiceHandler());
Messenger replyMessenger; //向客服端返回信息
public MessengerService() {
}
@Override
public IBinder onBind(Intent intent) {
return messenger.getBinder();
}
class ServiceHandler extends Handler {
@Override
public void handleMessage(Message msg) {
replyMessenger = msg.replyTo;
switch (msg.what) {
case GET_DATA:
//客服端向服务端请求数据
if (replyMessenger != null) {
Bundle bundle = new Bundle();
bundle.putString("str", CustomData.getInstance().getData());
Message message = Message.obtain(null, 1);
message.setData(bundle);
try {
replyMessenger.send(message);
} catch (RemoteException e) {
e.printStackTrace();
}
}
break;
case SET_DATA:
//客服端向服务端请求更新数据
CustomData.getInstance().setData(msg.getData().getString("str"));
break;
}
}
}
}