成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Android--service服務(wù)的創(chuàng)建與使用,生命周期

1. 為什么使用service

創(chuàng)新互聯(lián)企業(yè)建站,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁設(shè)計(jì),有多年建站和網(wǎng)站代運(yùn)營經(jīng)驗(yàn),設(shè)計(jì)師為客戶打造網(wǎng)絡(luò)企業(yè)風(fēng)格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對(duì)于網(wǎng)站設(shè)計(jì)、做網(wǎng)站中不同領(lǐng)域進(jìn)行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動(dòng)的思維在網(wǎng)頁中充分展現(xiàn),通過對(duì)客戶行業(yè)精準(zhǔn)市場調(diào)研,為客戶提供的解決方案。

應(yīng)用程序 : 一組組件(activity  service provider receiver)的集合.
一般情況 一個(gè)應(yīng)用程序 會(huì)對(duì)應(yīng)一個(gè)進(jìn)程.
一般情況 關(guān)閉掉應(yīng)用,  (關(guān)閉掉所有的界面 , 關(guān)閉所有的activity).
應(yīng)用程序的進(jìn)程 是不會(huì)被關(guān)閉掉的 仍然在后臺(tái)長期的運(yùn)行.

采用一組策略 幫助我們自動(dòng)的管理進(jìn)程.
進(jìn)程 按照優(yōu)先級(jí)分為不同的等級(jí):
(1. 前臺(tái)進(jìn)程  用戶可以看到這個(gè)進(jìn)程里面某一個(gè)activity的界面. 可以操作這個(gè)界面
(2. 可見進(jìn)程  用戶仍然可以看到這個(gè)進(jìn)程 某個(gè)activity的界面 ,但是 不可以操作這個(gè)界面
(3. 服務(wù)進(jìn)程  如果一個(gè)應(yīng)用程序 有一個(gè)服務(wù)在后臺(tái)運(yùn)行
(4. 后臺(tái)進(jìn)程  沒有任何服務(wù)的進(jìn)程 打開一個(gè)activity 之后 按了home鍵 最小化
(5. 空進(jìn)程    沒有任何活動(dòng)組件 存在的進(jìn)程.

 

2. 創(chuàng)建和使用service, 示例service×××電話

MainActivity.java , 開啟一個(gè)service

public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//開啟服務(wù)
Intent intent = new Intent(this,PhoneStatusService.class);
startService(intent);
}
}

PhoneStatusService.java ,  服務(wù)類繼承自 Service

public class PhoneStatusService extends Service {
/**
* 長期在后臺(tái)運(yùn)行的組件,如果用戶不手動(dòng)的關(guān)閉 , 不會(huì)停止的.
*/
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
super.onCreate();
System.out.println("服務(wù)被創(chuàng)建了 ");
// 監(jiān)視用戶電話狀態(tài)的變化...
// 電話管理器 電話管理的服務(wù)
TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
// ×××的通話狀態(tài)的變化
tm.listen(new MyPhoneStatusLinstener(),
PhoneStateListener.LISTEN_CALL_STATE);
}
private class MyPhoneStatusLinstener extends PhoneStateListener {
private MediaRecorder recorder;
@Override
public void onCallStateChanged(int state, String incomingNumber) {
try {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE: // 空閑狀態(tài) ,沒有通話 沒有響鈴
if (recorder != null) {
recorder.stop();
recorder.reset(); // You can reuse the object by going back
recorder.release(); // Now the object cannot be reused
recorder = null;
}
break;
case TelephonyManager.CALL_STATE_RINGING: // 響鈴狀態(tài).
System.out.println("發(fā)現(xiàn)來電號(hào)碼 :" + incomingNumber);
// 1.創(chuàng)建出來一個(gè)錄音機(jī)
recorder = new MediaRecorder();
// 設(shè)置錄制的音頻源 從話筒里面獲取聲音
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile("/sdcard/" + System.currentTimeMillis()
+ ".3gp");
recorder.prepare();
break;
case TelephonyManager.CALL_STATE_OFFHOOK: // 通話狀態(tài)
if (recorder != null) {
recorder.start(); // Recording is now started
}
break;
}
} catch (Exception e) {
e.printStackTrace();
}
super.onCallStateChanged(state, incomingNumber);
}
}
@Override
public void onDestroy() {
super.onDestroy();
System.out.println("服務(wù)被銷毀了...");
}
}

AndroidManifest.xml 注冊(cè)服務(wù)及權(quán)限獲取

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.itheima.callstatuslintener"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.itheima.callstatuslintener.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name=".PhoneStatusService"></service>
</application>
</manifest>

 

網(wǎng)站題目:Android--service服務(wù)的創(chuàng)建與使用,生命周期
新聞來源:http://jinyejixie.com/article26/iicjcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、品牌網(wǎng)站設(shè)計(jì)、軟件開發(fā)ChatGPT、網(wǎng)站導(dǎo)航、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)
民县| 丽江市| 义马市| 高碑店市| 墨竹工卡县| 琼海市| 黄大仙区| 田东县| 崇州市| 贵州省| 五河县| 宜春市| 如东县| 来安县| 都安| 永仁县| 香格里拉县| 钟山县| 上高县| 巴林右旗| 新巴尔虎左旗| 横峰县| 石屏县| 清流县| 鄯善县| 政和县| 岗巴县| 稷山县| 合水县| 明星| 武穴市| 墨竹工卡县| 徐闻县| 毕节市| 成安县| 融水| 临夏市| 靖西县| 黔西| 沙坪坝区| 宁晋县|