欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

詳解androidwebView獨(dú)立進(jìn)程通訊方式-創(chuàng)新互聯(lián)

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

發(fā)展壯大離不開廣大客戶長(zhǎng)期以來的信賴與支持,我們將始終秉承“誠(chéng)信為本、服務(wù)至上”的服務(wù)理念,堅(jiān)持“二合一”的優(yōu)良服務(wù)模式,真誠(chéng)服務(wù)每家企業(yè),認(rèn)真做好每個(gè)細(xì)節(jié),不斷完善自我,成就企業(yè),實(shí)現(xiàn)共贏。行業(yè)涉及除甲醛等,在網(wǎng)站建設(shè)網(wǎng)絡(luò)營(yíng)銷推廣、WAP手機(jī)網(wǎng)站、VI設(shè)計(jì)、軟件開發(fā)等項(xiàng)目上具有豐富的設(shè)計(jì)經(jīng)驗(yàn)。
  • webView 加載網(wǎng)頁的時(shí)候可能占用大量?jī)?nèi)存,導(dǎo)致應(yīng)用程序OOM。
  • webView 在訪問結(jié)束的時(shí)候可以直接殺死該進(jìn)程,防止內(nèi)存泄漏。
  • webView 在崩潰的時(shí)候不影響主進(jìn)程。

webView獨(dú)立進(jìn)程需要注意什么

  • 由于進(jìn)程之間內(nèi)存是獨(dú)立的,所以導(dǎo)致了Appcation, 靜態(tài)類需要在新的進(jìn)程重新創(chuàng)建。
  • 內(nèi)存中的數(shù)據(jù)不共享,需要跨進(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:實(shí)現(xiàn)相對(duì)簡(jiǎn)單,將所有請(qǐng)求放到消息隊(duì)列中,不適合做并發(fā)處理,在大多數(shù)的場(chǎng)景用Messenger就可以實(shí)現(xiàn)了。
  • AIDL: 適合并發(fā)操作。直接方法調(diào)用,結(jié)構(gòu)更清晰。

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)

綿陽服務(wù)器托管