解決Android出現閃退

來源:互聯網
上載者:User

標籤:android   應用程式   具體步驟   thread   public   

Android項目中經常閃退(anr)原因有很多種,各種沒有捕獲的異常都會導致項目的崩潰,對於此問題除了在寫代碼是要考慮全面,並對可能出現的Exception進行捕獲,同時也可以設定一個全域異常捕獲的機制來保證你的疏忽(對應該捕獲的異常沒有做處理)。具體步驟如下:

1、首先建立一個Handler 繼承java.lang.Thread.UncaughtExceptionHandler:

//未捕獲異常
    @Override
    public void uncaughtException(Thread thread, Throwable ex) {
             String threadName = thread.getName();
             ItktLog.d(threadName);
    //這裡我們可以根據thread name來進行區別對待,同時,我們還可以把異常資訊寫入檔案,以供後來分析        
    }
    //單例引用,這裡我們做成單例的,因為我們一個應用程式裡面只需要一個UncaughtExceptionHandler執行個體
    private static CrashHandler instance;  
       
    private CrashHandler(){}
  //同步方法,以免單例多線程環境下出現異常
    public synchronized static CrashHandler getInstance(){  
        if (instance == null){
            instance = new CrashHandler();
        }
        return instance;
    }
    //初始化,把當前對象設定成UncaughtExceptionHandler處理器
    public void init(Context ctx){
        Thread.setDefaultUncaughtExceptionHandler(this);
    }
   
2、在自訂Application的oncreate()方法中初始化:

CrashHandler handler = CrashHandler.getInstance();
        handler.init(getApplicationContext());



本文出自 “信諾集團技術中心” 部落格,請務必保留此出處http://sinoteam.blog.51cto.com/9115640/1567452

解決Android出現閃退

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.