中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

做開發的過程中,搞著搞著出現異常了,這可怎么辦

發布時間:2020-07-26 10:59:19 來源:網絡 閱讀:129 作者:Android丶VG 欄目:移動開發

前言

在做android項目開發時,大家都知道如果程序出錯了,會彈出來一個強制退出的彈 出框,這個本身沒什么問題,但是這個UI實在是太丑了,別說用戶接受不了,就連 我們自己本身可能都接受不了。雖然我們在發布程序時總會經過仔細的測試,但是 難免會碰到預料不到的錯誤。

今天就來自定義一個程序出錯時的處理,類似iphone的閃退。(雖然閃退也是用戶不 愿意看到的,但是在用戶體驗上明顯比那個原生的彈窗好多了) 廢話不多說,直接上代碼:

CrashHandler
  /**
   * 自定義的 異常處理類 , 實現了 UncaughtExceptionHandler接口 
   *
   */ 
    public class CrashHandler implements UncaughtExceptionHandler { 
      // 需求是 整個應用程序 只有一個 MyCrash-Handler 
      private static CrashHandler INSTANCE ; 
      private Context context; 

      //1.私有化構造方法 
      private CrashHandler(){ 

      }

      public static synchronized CrashHandler getInstance(){ 
         if (INSTANCE == null) 
             INSTANCE = new CrashHandler(); 
         return INSTANCE;
      }

      public void init(Context context){ 
         this.context = context; 
      }

      public void uncaughtException(Thread arg0, Throwable arg1) { 
         System.out.println("程序掛掉了 "); 
         // 在此可以把用戶手機的一些信息以及異常信息捕獲并上傳,由于UMeng在 這方面有很程序的api接口來調用,故沒有考慮 
         //干掉當前的程序 
         android.os.Process.killProcess(android.os.Process.myPid( ));
      } 
  }
CrashApplication
  /**
   * 在開發應用時都會和Activity打交道,而Application使用的就相對較少了。 
   * Application是用來管理應用程序的全局狀態的,比如載入資源文件。 
   * 在應用程序啟動的時候Application會首先創建,然后才會根據情況(Intent)啟 動相應的Activity或者Service。 
   * 在本文將在Application中注冊未捕獲異常處理器。
   */ 
    public class CrashApplication extends Application { 
       @Override 
       public void onCreate() { 
          super.onCreate(); 
          CrashHandler handler =  CrashHandler.getInstance(); 
          handler.init(getApplicationContext()); 
          Thread.setDefaultUncaughtExceptionHandler(handler); 
       }
   }
AndroidManifest.xml中注冊
  <?xml version="1.0" encoding="utf-8"?> 
  <manifest xmlns:android="http://schemas.android.com/apk/res/andr oid"package="org.wp.activity" android:versionCode="1" android:ve rsionName="1.0"> 
  <application android:icon="@drawable/icon" android:label="@s tring/app_name" android:name=".CrashApplication" android:debuggable="tru e"> 
      <activity android:name=".MainActivity" android:label="@s tring/app_name"> 
           <intent-filter> 
                <action android:name="android.intent.action.MAIN" /> 
                <category android:name="android.intent.category. LAUNCHER" />
           </intent-filter> 
      </activity> 
    </application> 
    <uses-sdk android:minSdkVersion="8" /> 
  </manifest>

至此,可以測試下在出錯的時候程序會直接閃退,并殺死后臺進程。當然也可以自 定義一些比較友好的出錯UI提示,進一步提升用戶體驗。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

福建省| 本溪市| 江阴市| 汽车| 玉门市| 闻喜县| 吴忠市| 东阿县| 启东市| 房产| 闽侯县| 青河县| 上思县| 滨州市| 建水县| 泰来县| 临朐县| 定日县| 内丘县| 河津市| 闸北区| 茌平县| 凤阳县| 会昌县| 大庆市| 双鸭山市| 连南| 永胜县| 长沙县| 吉安市| 金平| 大足县| 定南县| 五常市| 通道| 江门市| 滨海县| 海兴县| 谷城县| 手机| 凌源市|