Service
創(chuàng)新互聯(lián)公司致力于成都網(wǎng)站制作、網(wǎng)站建設(shè),成都網(wǎng)站設(shè)計,集團(tuán)網(wǎng)站建設(shè)等服務(wù)標(biāo)準(zhǔn)化,推過標(biāo)準(zhǔn)化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進(jìn)行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場競爭中脫穎而出。 選擇創(chuàng)新互聯(lián)公司,就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!
服務(wù)
四大組件之一 沒有界面,運行在后臺
要素:
1、繼承Service
2、在清單文件里面注冊
<name = 包名 + 類名>
生命周期:
打開服務(wù):
startService(Intent intent)
生命周期:
onCreat() onStartConmmand()
關(guān)閉服務(wù):
stopService(Intent intent);
注意:1、通過startService打開的服務(wù)跟Activity之間的聯(lián)系比較松散(activity關(guān)閉服務(wù)不會死掉)
2、Service打開之后繼續(xù)調(diào)用startService只會調(diào)用 onStartConmmand()
3、通過startService打開的Service只能通過stopservice關(guān)閉
ServiceConnection conn = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
//綁定異常調(diào)用
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
//綁定成功,并返回一個非空的Ibinder類型對象時調(diào)用
}
};
綁定服務(wù)
綁定服務(wù)的時候,界面關(guān)閉掉,服務(wù)隨之關(guān)閉。綁定成功的時候可以得到服務(wù)返回的數(shù)據(jù)。
Intent service = new Intent(this, MyService.class);
//綁定服務(wù)
bindService(service , conn, Context.BIND_AUTO_CREATE);
//Context.BIND_AUTO_CREATE 當(dāng)服務(wù)不存在,默認(rèn)去創(chuàng)建服務(wù)
解除綁定:
unbindService(conn);
綁定Service獲取服務(wù)返回的消息
1、綁定成功
onBinder()會返回IBinder類型的對象
2、聲明一個類去接觸Binder(implement IBinder)
3、在聲明的類中聲明一個方法
4、在 onBinder返回聲明的類的對象
5、在Activity中的ServiceConnection 類型的對象中的onServiceConnected()中接收返回的對象
starService + binderService
廣播接受者
BroadcastReceiver
廣播機(jī)制
單向,群發(fā)。
創(chuàng)建:
1、繼承BroadcastReceiver
2、在清單文件中注冊
注冊:
1、清單文件中注冊
2、代碼中注冊
例子:
接收短信
1、權(quán)限:
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
2、設(shè)置廣播接收者的過濾條件
a、在清單文件中注冊
<intent-filter >
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
b、在代碼中注冊
receiver = new MyReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("android.provider.Telephony.SMS_RECEIVED");
/ /注冊廣播接受者
registerReceiver(receiver , filter );
//注銷廣播接收者
unregisterReceiver(receiver);
清單文件中注冊與代碼中注冊的區(qū)別
1、 清單文件中注冊 進(jìn)程不存在 只要過濾條件匹配就能接收廣播
2、代碼中注冊 使用靈活 進(jìn)程不存在則接收不了
應(yīng)用本身也可以發(fā)廣播
可以被應(yīng)用本身的廣播接收者接收,也可以被其他應(yīng)用的廣播接收者接收
//發(fā)送廣播
Intent intent = new Intent();
intent.putExtra("key", "ssssss");
intent.setAction("com.xinbo.mysms");
sendBroadcast(intent );
Intent
1、顯式意圖 (指定要打開的目標(biāo))
2、隱式意圖
通過隱式意圖打開界面:
1、在清單文件為Activty設(shè)置過濾條件
<intent-filter >
<action android:name="com.yinan"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
2、Intent intent = new Intent();
intent.setAction("com.yinan");
startActivity(intent );
1、顯式意圖 只能打開本應(yīng)用的界面 只能打開一個
2、隱式意圖 可以打開本應(yīng)用也可以打開其他應(yīng)用的界面 可以開啟多個以供選擇
文章題目:Android初級第三次小結(jié)
當(dāng)前URL:http://m.rwnh.cn/article26/jcjcjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、軟件開發(fā)、外貿(mào)網(wǎng)站建設(shè)、服務(wù)器托管、建站公司、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)