日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
在Android中實(shí)現(xiàn)service動(dòng)態(tài)更新UI界面

之前我們?cè)蚰榻B過(guò)Android的UI設(shè)計(jì)與后臺(tái)線程交互,據(jù)Android API的介紹,service一般是在后臺(tái)運(yùn)行的,沒(méi)有界面的。那么如何實(shí)現(xiàn)service動(dòng)態(tài)更新UI界面呢?

憑祥ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

案例:通過(guò)service向遠(yuǎn)程服務(wù)器發(fā)送請(qǐng)求,根據(jù)服務(wù)器返回的結(jié)果動(dòng)態(tài)更新主程序UI界面,主程序可實(shí)時(shí)關(guān)閉或重啟服務(wù)。

注冊(cè)BroadcastReceiver

在主程序activity中注冊(cè)一個(gè)BroadcastReceiver,用于接收Service發(fā)布的廣播。

 
 
 
  1. @Override
  2. protected void onStart() {//重寫onStart方法
  3.     dataReceiver = new DataReceiver();
  4.     IntentFilter filter = new IntentFilter();//創(chuàng)建IntentFilter對(duì)象
  5.     filter.addAction("com.justel.serviceBC");
  6.     registerReceiver(dataReceiver, filter);//注冊(cè)Broadcast Receiver
  7.     super.onStart();
  8. }

停止service命令

主程序activity可發(fā)布廣播,用于向后臺(tái)service傳遞數(shù)據(jù)或控制信息,如停止service命令。

 
 
 
  1.       btnStop.setOnClickListener(new OnClickListener() {//為按鈕添加點(diǎn)擊事件監(jiān)聽   
  2.     @Override
  3.     public void onClick(View v) {//重寫onClick方法
  4.         Intent myIntent = new Intent();//創(chuàng)建Intent對(duì)象
  5.         myIntent.setAction("com.justel.service");
  6.         myIntent.putExtra("cmd", CMD_STOP_SERVICE);
  7.         sendBroadcast(myIntent);//發(fā)送廣播
  8.     }
  9. });

接收廣播

后臺(tái)service注冊(cè)BroadCastReceiver用于接受主程序發(fā)送的廣播

 
 
 
  1. @Override
  2. public int onStartCommand(Intent intent, int flags, int startId) {//重寫onStartCommand方法
  3.     IntentFilter filter = new IntentFilter();//創(chuàng)建IntentFilter對(duì)象
  4.     filter.addAction("com.justel.service");
  5.     registerReceiver(cmdReceiver, filter);//注冊(cè)Broadcast Receiver
  6.     doJob();//調(diào)用方法啟動(dòng)線程,自己來(lái)完成
  7.     return super.onStartCommand(intent, flags, startId);
  8. }

實(shí)時(shí)發(fā)送 

后臺(tái)service在doJob()方法中連接服務(wù)器并向主程序?qū)崟r(shí)發(fā)送廣播。

 
 
 
  1. /**
  2.  * 啟動(dòng)一個(gè)子純種并連接服務(wù)器,接收服務(wù)器返回?cái)?shù)據(jù)data。代碼略。。。
  3.  */
  4. Object data;//服務(wù)器返回的數(shù)據(jù)data
  5. Intent intent = new Intent();//創(chuàng)建Intent對(duì)象
  6. intent.setAction("com.justel.service");
  7. intent.putExtra("data", data);
  8. sendBroadcast(intent);//發(fā)送廣播

至此,我們實(shí)現(xiàn)了主程序通過(guò)接收廣播實(shí)時(shí)更新應(yīng)用的UI界面。


當(dāng)前標(biāo)題:在Android中實(shí)現(xiàn)service動(dòng)態(tài)更新UI界面
網(wǎng)頁(yè)網(wǎng)址:http://m.5511xx.com/article/cdgjjoj.html