該方法返回了一個新的雙初始化爲指定字符串表示的值,這樣作由於double類有valueof的方法。java
本例中用於講一個字符串轉換爲數字的方法,若是執行沒有觸發異常就表示爲電話號碼。android
該方法用於檢查是否包含對應內容,只支持charsequence,即字符序列。
本例中,用於檢查坐着的手機號是否包含在短信來源中數組
監聽短信SMS監聽:app
首先提取intent中的bundle對象,而後使用pdu密鑰提取SMS plus數組,每個pdu都表示一個sms消息,使用SmsMessage的createFromPdu()方法將每個pdu字節數組轉換成爲Smsmessage對象,調用該對象的getOriginatingAddress()方法可獲取發送方手機號,getMessageBody()方法能夠獲取短信的內容。函數
我的認爲就是一個判斷的指標,相似於if中的判別式server
service+broadcastxml
Service:可經過context.startservice(對於本地服務)和context.bindseverice(對於遠程服務)來啓動。對象
法一:使用onStartCommand方法,返回START_STICKY排序
法二:提高service進程優先級生命週期
法三:
提高service優先級
進程優先級排序從高到低:
前臺進程>可視進程>次要服務進程>後臺進程>內容供應節點>空進程
將service放到前臺,可是注意onDestroy裏須要stopForeground(true)
法四:在onDestroy方法裏重啓service
法五:設置android:persistent=「true」(不知道我看的對不對,應該沒問題)不要亂設置!
法六:經過系統的各類廣播監聽
法七:經過開啓兩個app,相互監聽。
一、context類中的getSharedPreferences()方法
有兩種模式:MODE_PRIVATE---僅當前應用纔可讀寫
MODE_MULTI_PROGRESS---可容許多個進程讀寫
二、Activity類中的getPreferences()方法
只能在該activity中使用
三、PreferenceManager類中的getDefultSharedPreferences()方法
靜態方法
步驟:
調用SharedPreference對象的edit()方法獲取一個SharedPreference.editor對象
向SharedPreference.editor中添加數據,方式對應爲 布爾型——putBoolean、字符串——putString()
調用commit()方法將添加的數據提交。
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異常。
從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);
Finish():activity內容須要關閉,將其移出棧,可是資源並無釋放,空間依舊是被佔用的。
onDestroy():在activity生命週期最後一步,將資源空間回收,也就是與此activity有關的內容所有處理完成。
Exit(0):推出整個應用程序,針對整個app,將整個app所有kill掉。