1. mplicit intent,Android默認給加上一個CATEGORY_DEFAULT,所以,如果你的 activity支持接收implicit intent的話就一定要在intent filter中加入android.intent.category.DEFAULT。
action--要求intent中的action必須能夠過濾規則中的某一個相同 (mplicit intent必須設置action)
category--要求intent中的所有category都和過濾規則中的一個category相同
data--intent中的data和過濾規則中的data完全一樣
所以說(action和category過濾規則基本上一樣):
2.
ContentObserver——內容觀察者,目的是觀察(捕捉)特定Uri引起的數據庫的變化,繼而做一些相應的處理,它類似于
數據庫技術中的觸發器(Trigger),當ContentObserver所觀察的Uri發生變化時,便會觸發它。觸發器分為表觸發器、行觸發器,
相應地ContentObserver也分為“表“ContentObserver、“行”ContentObserver,當然這是與它所監聽的Uri MIME Type有關的。
每個ContentPRovider數據源發生改變后,如果想通知其監聽對象, 例如ContentObserver時,必須在其對應方法 update /
insert / delete時,顯示的調用this.getContentReslover().notifychange(uri , null)方法,回調監聽處理邏輯。否則,我們
的ContentObserver是不會監聽到數據發生改變的。 具體原理,大家可以參考老羅的這篇文章:
《Android應用程序組件Content Provider的共享數據更新通知機制分析》
注意:contentprovider的query,update,insert,delete四大方法是存在多線程并發訪問的,注意同步問題。
結: 使用ContentObserver的情況主要有一下兩者情況:
1)需要頻繁檢測的數據庫或者某個數據是否發生改變,如果使用線程去操作,很不經濟而且很耗時 ;
2)在用戶不知曉的情況下對數據庫做一些事件,比如:悄悄發送信息、拒絕接受短信黑名單等;
4. 速度 空間,界面優化
速度:因為ondraw方法可能會被頻繁調用,ondraw中不要創建新的局部對象;不要做耗時任務; 緩存 ;
(速度優化核心思想是避免在主線程中耗時事操作,線程優化的核心思想是采用線程池,重用線程)
界面:include,merge,viewstub
空間:0)listview bitmap優化 1)只有當任務正在執行的時候才應該讓Service運行起來。另外,當任務執行完之后去停止Service的時候,要小心Service停止失敗導致內存泄漏的情況。2)OnTrimMemory是Android 4.0之后提供的API,系統會根據不同的內存狀態來回調。根據不同的內存狀態,來響應不同的內存釋放策略。監聽TRIM_MEMORY_UI_HIDDEN這個級別,一旦觸發了之后就說明用戶已經離開了我們的程序,那么此時就可以進行資源釋放操作了。
5.圖片加載、緩存策略、列表的滑動流暢性。
Lru Least Recently Used 最近最少使用算法。
6. 坐標體系 left, x ,rawX, translationX , ScrollX
left =控件左上角在父容器中橫坐標的像素值
x 是View左上角相對于父容器的坐標值
rawX--是View左上角相對于手機屏幕左上角。
translationX,存在平移過程,控件在x軸上偏移的像素值.默認值是0
ScrollX--scrollX是view的內容移動的距離,也就是說調用了view的scrollTo或scrollBy方法,view本身不會移動,只會移動view的內容。
scrollX是相對于View中位置移動,內容在View中移動了,scrollX才會變,移動view不回引起ScrollX的改變
7 scrollto和scrollby (方向向右/下為負,方向向左/上為正)
相同的地方:移動的都是這個方法調用者View的內容,而不是移動view.
不同的地方:scrollTo()方法是讓View的內容相對于初始的位置滾動某段距離,無論怎么樣移動(scrollto或scrollby)多少次,View的初始位置是不變的.
而scrollBy()方法則是讓view的內容相對于當前的位置滾動某段距離。ScrollX也是無論移動多少次,都是相對與初始位置的值(默認情況下scrollX scrolly==0)
setTranslationX
新聞熱點
疑難解答