為什么需要將webView放在獨(dú)立進(jìn)程

webView獨(dú)立進(jìn)程需要注意什么
如何聲明一個(gè)獨(dú)立進(jìn)程
在默認(rèn)情況下,同一應(yīng)用的所有組件都在相同的進(jìn)程中運(yùn)行。
在Manifest中可以設(shè)置各組件 (<activity>、<service>、<receiver>、<provider>)的 android:process 屬性來指定相應(yīng)的進(jìn)程。
跨進(jìn)程的方式
在android當(dāng)中提供了2種方式實(shí)現(xiàn)。
一種是Messenger, 另一種是Aidl.
Messenger
由于Messenger是采用消息隊(duì)列的方式實(shí)現(xiàn),所有接受和發(fā)送的時(shí)候都需要Handler協(xié)助。
服務(wù)端
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:
//客服端向服務(wù)端請(qǐng)求數(shù)據(jù)
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:
//客服端向服務(wù)端請(qǐng)求更新數(shù)據(jù)
CustomData.getInstance().setData(msg.getData().getString("str"));
break;
}
}
}
}
本文題目:詳解androidwebView獨(dú)立進(jìn)程通訊方式-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://chinadenli.net/article40/ejdeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、商城網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、響應(yīng)式網(wǎng)站、自適應(yīng)網(wǎng)站、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容