1. 程式人生 > >關於“執行在主執行緒的ContentProvider為什麼不會影響主執行緒”的記錄

關於“執行在主執行緒的ContentProvider為什麼不會影響主執行緒”的記錄

我們四大元件都是執行在UI執行緒上的,之前據我自己所看到的是主執行緒上有耗時的操作可能會造成ANR,今天做了一個實驗,建立一個工程,主Activity有一個可以觸發顯示一個Toast的按鈕,另外還有一個SQLiteOpenHelper的子類,另外一個繼承ContentProvider,提供往資料庫插入資料的操作:
01 package cth.android.verifycontentprovider;
02
03 import android.content.ContentProvider;
04 import android.content.ContentUris;
05 import android.content.ContentValues;
06 import
android.content.UriMatcher;
07 import android.database.Cursor;
08 import android.database.sqlite.SQLiteDatabase;
09 import android.net.Uri;
10
11 public class MyContentProvider
extends ContentProvider {
12
13 private MySQLiteOpenHelper mySQLiteOpenHelper;
14 private static

相關推薦

關於“執行執行ContentProvider為什麼影響執行”的記錄

我們四大元件都是執行在UI執行緒上的,之前據我自己所看到的是主執行緒上有耗時的操作可能會造成ANR,今天做了一個實驗,建立一個工程,主Activity有一個可以觸發顯示一個Toast的按鈕,另外還有一個SQLiteOpenHelper的子類,另外一個繼承ContentProvider,提供往資料庫插入

[android原始碼日記]-android的執行為什麼因為Looper.loop()裡面的死迴圈卡死?

一下是按照我自己的理解做的一個記錄。 顯而易見,在我們提出這個問題的時候,我們知道安卓主執行緒(又叫UI執行緒)在應用程式啟動ActivityThread的時候,就依次呼叫 Looper.prepareMainLooper(); Looper.loop();了

Handler 和 Looper操作在UI執行裡為什麼阻塞UI執行

Handler ,Looper,MessageQueue,Message 關係簡單理解就是:一個執行緒(包含UI執行緒,通過ThreadLocal) 對應著一個Looper,一個Looper對應著一個MessageQueue,Message是儲存在MessageQueue裡面

jdk1.8 hashmap多執行put造成死迴圈

hashmap多執行緒操作會造成連結串列的迴圈,這個已經被各種部落格的講爛了。大家都知道是put過程中的resize方法在呼叫transfer方法的時候導致的死鎖,故在此不詳述。 今天在看《java高併發程式設計》的時候,書中提到“但是這個(hashmap)死迴圈的問題在

SQL Server 執行計劃利用統計信息對數據行的預估原理二(為什麽復合索引列順序影響執行計劃對數據行的預估)

pan new statistic 細心 參考 gin 技術分享 重建 target 本文出處:http://www.cnblogs.com/wy123/p/6008477.html   關於統計信息對數據行數做預估,之前寫過對非相關列(單獨或者單獨的索

GitHub修復了允許任意程式碼執行的安全漏洞 Windows影響

GitHub是面向全球開發人員的首選程式碼共享和託管服務。雖然歐盟尚未最終確定該交易,但該公司在6月被微軟收購,作價75億美元。今天,GitHub宣佈了他們系統中的一個漏洞,允許任意程式碼執行的安全漏洞的攻擊。現在已經解決了這個問題,目前只有Unix平臺受到了影響。 GitHub的安全列表表示,如果執行了特

SQL Server 執行計劃利用統計資訊對資料行的預估原理二(為什麼複合索引列順序影響執行計劃對資料行的預估)

  關於統計資訊對資料行數做預估,之前寫過對非相關列(單獨或者單獨的索引列)進行預估時候的演算法,參考這裡。  今天來寫一下統計資訊對於複合索引在預估時候的計算方法和潛在問題。  本文原形來自於是個實際業務問題,某SQL在利用一個符合索引做查詢的時候,發現始終會出現預估誤差較大的情況,  而改變複合索

為什麼有許多人認為C盤太滿影響電腦執行速度?

傳統機械硬碟通常採取磁碟形式儲存,如同下圖所示。 機械硬碟磁碟旋轉通常採取恆定角速度,如我們常見的5400轉/7200轉等情況。而讀取資料的磁頭,是如上圖一樣在不同的磁軌圈中移動,讀取磁介質儲存的內容並轉換為資料傳輸給電腦。因此,在限定時間內磁頭在磁碟

Hibernate中session.flush()去資料庫執行SQL語句

首先可以確定的是,如果不提交事務的話,雖然會生成SQL語句,但資料庫中的資料並不會改變 測試程式碼如下: 首先我的資料庫中有這些條資料,實體物件為UserModel 程式碼如下 Session session = HibernateUtil.getSessi

看 Explain執行計劃,勸你簡歷別寫熟悉 SQL優化

昨天中午在食堂,和部門的技術大牛們坐在一桌吃飯,作為一個卑微技術渣仔默默的吃著飯,聽大佬們高談闊論,研究各種高階技術,我TM也想說話可實在插不上嘴。 聊著聊著突然說到他上午面試了一個工作6年的程式設計師,表情挺複雜,他說:我看他簡歷寫著熟悉`SQL`語句調優,就問了下 `Explain` 執行計劃怎麼看?結

【Java】面試官靈魂拷問:if語句執行完else語句真的執行嗎?

## 寫在前面 > 最近跳槽找工作的朋友確實不少,遇到的面試題也是千奇百怪,這不,一名讀者朋友面試時,被面試官問到了一個直擊靈魂的問題:if 語句執行完else語句真的不會再執行嗎?這個奇葩的問題把這名讀者問倒了! ## 問題分析 最近一名讀者留言說,自己出去面試被面試官的一道奇葩問題問倒了,這個

MySQL可重復讀采坑記錄-對事務B進行更新時,事務A提交的更新會影響到事務B

但是 start clas 行數 通過 基礎上 transacti 隔離 delete 之前線上出現數據重復插入的問題,通過對問題進行排查發現該問題和MySQL的默認隔離級別-Repeatable Read(可重讀)有關系,可重復讀確保同一事務的多個實例在並發讀取數據時,會

自己用軟體查重影響學校的查重結果

對畢業生來說,最痛苦的工作就是論文修改和論文查重了。即使你被折磨的死去活來,你還是要把它當作初戀對待。別緊張放輕鬆,把論文的重複率降下來並不難。如果你不知道怎麼做?那就來看看我說的這些應對策略吧,讓我們看看論文檢測的常見問題。 自己用查重軟體檢測會影響學校的檢查結果嗎? 答案肯定是不會的

js 對象操作 對象原型操作 把一個對象A賦值給另一個對象B 並且對象B 修改 影響 A對象

vue cells 操作 tab lsp 數據 代碼 sig for in 我最近在做一個vue + element-UI + vue-resource + vuex項目的時候,遇到了一個對象的問題。 當我們在項目需要 復制一個對象到另一個對象並且 被復制的對象不能受復制

js 物件複製 物件原型操作 把一個物件A賦值給另一個物件B 並且物件B 修改 影響 A物件

我最近在做一個vue + element-UI + vue-resource + vuex專案的時候,遇到了一個物件的問題。當我們在專案需要 複製一個物件到另一個物件並且  被複制的物件不能受複製後的物件的影響。我先總結下 我們哪些方法可以複製物件12345678910111

Android面試:執行中的Looper.loop()一直無限迴圈為什麼造成ANR?(轉)

  引子: 正如我們所知,在android中如果主執行緒中進行耗時操作會引發ANR(Application Not Responding)異常。 造成ANR的原因一般有兩種: 只有當應用程式的UI執行緒響應超時才會引起ANR,超時產生原因一般有兩種 1. 當前的事件沒有機會

android執行中Looper.loop()為什麼造成程式ANR

程式入口為ActivityThread的main方法,原始碼如下: frameworks/base/core/java/android/app/ActivityThread.java public static void main(String[] args) { S

Android中為什麼執行因為Looper.loop()方法造成阻塞

很多人都對Handler的機制有所瞭解,如果不是很熟悉的可以看看我 如果看過原始碼的人都知道,在處理訊息的時候使用了Looper.loop()方法,並且在該方法中進入了一個死迴圈,同時Looper.loop()方法是在主執行緒中呼叫的,那麼為什麼沒有造成阻

Android為什麼執行因為Looper.loop()裡的死迴圈卡死

主要有3個疑惑: 1.Android中為什麼主執行緒不會因為Looper.loop()裡的死迴圈卡死? 2.沒看見哪裡有相關程式碼為這個死迴圈準備了一個新執行緒去運轉? 3.Activity的生命週期這些方法這些都是在主執行緒裡執行的吧,那這些生命週期方法是怎麼實現在死