第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這個Handler類應(yīng)該是靜態(tài)的,否則可能會發(fā)生泄漏:IncomingHandler

這個Handler類應(yīng)該是靜態(tài)的,否則可能會發(fā)生泄漏:IncomingHandler

手掌心 2019-06-29 16:57:32
這個Handler類應(yīng)該是靜態(tài)的,否則可能會發(fā)生泄漏:IncomingHandler我正在用服務(wù)開發(fā)一個Android2.3.3應(yīng)用程序。我在該服務(wù)中有一個與主要活動進行溝通的方法:public class UDPListenerService extends Service{     private static final String TAG = "UDPListenerService";     //private ThreadGroup myThreads = new ThreadGroup("UDPListenerServiceWorker");     private UDPListenerThread myThread;     /**      * Handler to communicate from WorkerThread to service.      */     private Handler mServiceHandler;     // Used to receive messages from the Activity     final Messenger inMessenger = new Messenger(new IncomingHandler());     // Use to send message to the Activity     private Messenger outMessenger;     class IncomingHandler extends Handler     {         @Override         public void handleMessage(Message msg)         {         }     }     /**      * Target we publish for clients to send messages to Incoming Handler.      */     final Messenger mMessenger = new Messenger(new IncomingHandler());     [ ... ]}在這里,final Messenger mMessenger = new Messenger(new IncomingHandler());,我收到以下林特警告:This Handler class should be static or leaks might occur: IncomingHandler什么意思?
查看完整描述

3 回答

?
慕田峪7331174

TA貢獻1828條經(jīng)驗 獲得超13個贊

下面是一個使用弱引用和靜態(tài)處理程序類來解決問題的通用示例(如Lint文檔中所建議的):

public class MyClass{

  //static inner class doesn't hold an implicit reference to the outer class
  private static class MyHandler extends Handler {
    //Using a weak reference means you won't prevent garbage collection
    private final WeakReference<MyClass> myClassWeakReference; 

    public MyHandler(MyClass myClassInstance) {
      myClassWeakReference = new WeakReference<MyClass>(myClassInstance);
    }

    @Override
    public void handleMessage(Message msg) {
      MyClass myClass = myClassWeakReference.get();
      if (myClass != null) {
        ...do work here...
      }
    }
  }

  /**
   * An example getter to provide it to some external class
   * or just use 'new MyHandler(this)' if you are using it internally.
   * If you only use it internally you might even want it as final member:
   * private final MyHandler mHandler = new MyHandler(this);
   */
  public Handler getHandler() {
    return new MyHandler(this);
  }}


查看完整回答
反對 回復(fù) 2019-06-29
  • 3 回答
  • 0 關(guān)注
  • 542 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號