對於安卓鎖屏中知識點小結

java.lang.Double.parseDouble():

該方法返回了一個新的雙初始化爲指定字符串表示的值,這樣作由於double類有valueof的方法。java

本例中用於講一個字符串轉換爲數字的方法,若是執行沒有觸發異常就表示爲電話號碼。android

String.Contains()方法:

該方法用於檢查是否包含對應內容,只支持charsequence,即字符序列。
本例中,用於檢查坐着的手機號是否包含在短信來源中數組

監聽短信SMS監聽:app

首先提取intent中的bundle對象,而後使用pdu密鑰提取SMS plus數組,每個pdu都表示一個sms消息,使用SmsMessage的createFromPdu()方法將每個pdu字節數組轉換成爲Smsmessage對象,調用該對象的getOriginatingAddress()方法可獲取發送方手機號,getMessageBody()方法能夠獲取短信的內容。函數

時間判斷isflag():

我的認爲就是一個判斷的指標,相似於if中的判別式server

保證SMSserver不被殺死的方法:

service+broadcastxml

Service:可經過context.startservice(對於本地服務)和context.bindseverice(對於遠程服務)來啓動。對象

法一:使用onStartCommand方法,返回START_STICKY排序

法二:提高service進程優先級生命週期

法三:
提高service優先級

進程優先級排序從高到低:

前臺進程>可視進程>次要服務進程>後臺進程>內容供應節點>空進程

將service放到前臺,可是注意onDestroy裏須要stopForeground(true)

法四:在onDestroy方法裏重啓service

法五:設置android:persistent=「true」(不知道我看的對不對,應該沒問題)不要亂設置!

法六:經過系統的各類廣播監聽

法七:經過開啓兩個app,相互監聽。

SharedPreference存儲:

一、context類中的getSharedPreferences()方法

有兩種模式:MODE_PRIVATE---僅當前應用纔可讀寫

MODE_MULTI_PROGRESS---可容許多個進程讀寫

二、Activity類中的getPreferences()方法

只能在該activity中使用

三、PreferenceManager類中的getDefultSharedPreferences()方法

靜態方法

步驟:
調用SharedPreference對象的edit()方法獲取一個SharedPreference.editor對象

向SharedPreference.editor中添加數據,方式對應爲 布爾型——putBoolean、字符串——putString()

調用commit()方法將添加的數據提交。

Intent四大屬性:

Action、Data、Category、Extras

Action:Action屬性的值爲一個字符串,它表明了系統中已經定義了一系列經常使用的動做。經過setAction()方法或在清單文件AndroidManifest.xml中設置。默認爲:DEFAULT。
  
Data:Data一般是URI格式定義的操做數據。例如:tel:// 。經過setData()方法設置。
  
Category:Category屬性用於指定當前動做(Action)被執行的環境。經過addCategory()方法或在清單文件AndroidManifest.xml中設置。默認爲:CATEGORY_DEFAULT。
  
Extras:Extras屬性主要用於傳遞目標組件所須要的額外的數據。經過putExtras()方法設置。

(1)在AndroidMainfest.xml 中對每個Activity都作了說明——intent-filter,intent-filter聲明瞭須要接收怎樣的Intent,當發送的Intent和intent-filter中定義的相符合,就會啓動相應的Activity;

(2)當有多個Activity符合發送的Intent時,Android系統會列出全部知足Intent的Activity,用戶能夠經過選擇進行相關的操做;

(3)在一個Activity的intent-filter中能夠有多個action、多個category、多個data,這樣能夠有多種組合與Intent進行匹配。注意:若是在一個Activity中有多個Intent進行匹配的時候,建議使用多個intent-filter與Intent進行匹配。猜想:這樣應該能夠提升Intent的匹配速度。

(4)data屬性,這是一個進行反向限制Intent的操做,要求Intent的data必須是intent-filter中聲明的數據之一(應爲在一個intent-filter中能夠設置多個data)。注意:若是要啓動目標Activity,可是指定的data數據類型與Activity中data數據類型不匹配,將會形成ActivityNotFoundException異常。

Class.forName()用法及與new區別(沒搞透)

從JVM的角度看,咱們使用關鍵字new建立一個類的時候,這個類能夠沒有被加載。可是使用newInstance()方法的時候,就必須保證:一、這個類已經加載;二、這個類已經鏈接了。 而完成上面兩個步驟的正是Class的靜態方法forName()所完成的,這個靜態方法調用了啓動類加載器,即加載 java API的那個加載器。

new 和Class.forName()有什麼區別? 其實上面已經說到一些了,這裏來作個總結: 首先,newInstance( )是一個方法,而new是一個關鍵字; 其次,Class下的newInstance()的使用有侷限,由於它生成對象只能調用無參的構造函數,而使用 new關鍵字生成對象沒有這個限制。 簡言之:newInstance(): 弱類型,低效率,只能調用無參構造。new: 強類型,相對高效,能調用任何public構造。Class.forName(「」)返回的是類。Class.forName(「」).newInstance()返回的是object

長短信發送:

public void sendMultipartTextMessage

發送短信的三種方式:

發送信息的三種方法(在android.telephony.SmsManager中定義)

SmsManager.getDefault().sendDataMessage(destinationAddress, scAddress, destinationPort, data, sentIntent, deliveryIntent); 

SmsManager.getDefault().sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent); 

SmsManager.getDefault().sendMultipartTextMessage(destinationAddress, scAddress, parts, sentIntents, deliveryIntents);

Activity中finish() onDestroy() 和System.exit()的區別

Finish():activity內容須要關閉,將其移出棧,可是資源並無釋放,空間依舊是被佔用的。

onDestroy():在activity生命週期最後一步,將資源空間回收,也就是與此activity有關的內容所有處理完成。

Exit(0):推出整個應用程序,針對整個app,將整個app所有kill掉。

相關文章
相關標籤/搜索