[英]How to prevent Android SQLite from dumping stack trace to logcat?
在Android 2.3.3上,我正在使用API方法批量導入我的SQLite表之一:
SQLiteDatabase.insert(字符串表,字符串nullColumnHack,ContentValues值)
它工作正常,但是如果任何行都存在數據庫錯誤(例如約束錯誤),則將完整的堆棧跟蹤寫入Android Logcat,從而迅速填充。
如何關閉此堆棧跟蹤?
我已經處理了所有拋出的異常,但是Logcat從SQLite庫代碼中被污染了。
我擔心移動設備上的性能。
應該強制執行約束,我將處理沖突,但是我想關閉Logcat中針對每個沖突的20行堆棧跟蹤乘以數百個沖突。
不幸的是,我也不能使用Android Froyo引入的高級沖突處理功能,因為該應用程序還必須在較舊的設備上運行。
干杯。
好的,我剛剛找到了以下解決方案:
我必須使用其他API方法(不是SQLiteDatabase.insert()
):
SQLiteDatabase.insertOrThrow(String table, String nullColumnHack, ContentValues values)
現在,按預期從SQLite庫引發了異常,並且沒有轉儲堆棧跟蹤。
只需根據標簽或進程ID過濾掉您不感興趣的任何內容。 您可以在Eclipse的Logcat查看器中輕松完成此操作,或者,如果您在命令行上使用Logcat,請參見此處的說明 。
這不是污染。 LogCat的目的是注冊設備/仿真器上正在發生的一切。
如果要過濾出LogCat,則可以在Eclipse中進行過濾(可以按日志標簽,PID或按日志級別過濾),從而提供了一種從LogCat窗口中“刪除”有害異常的方法。
編輯如果問題是性能(根據您的評論),我認為您不必擔心。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.