您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關Android中怎么利用service動態更新UI界面,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
注冊BroadcastReceiver
在主程序activity中注冊一個BroadcastReceiver,用于接收Service發布的廣播。
@Override protected void onStart() {//重寫onStart方法 dataReceiver = new DataReceiver(); IntentFilter filter = new IntentFilter();//創建IntentFilter對象 filter.addAction("com.justel.serviceBC"); registerReceiver(dataReceiver, filter);//注冊Broadcast Receiver super.onStart(); }
主程序activity可發布廣播,用于向后臺service傳遞數據或控制信息,如停止service命令。
btnStop.setOnClickListener(new OnClickListener() {//為按鈕添加點擊事件監聽 @Override public void onClick(View v) {//重寫onClick方法 Intent myIntent = new Intent();//創建Intent對象 myIntent.setAction("com.justel.service"); myIntent.putExtra("cmd", CMD_STOP_SERVICE); sendBroadcast(myIntent);//發送廣播 } });
后臺service注冊BroadCastReceiver用于接受主程序發送的廣播
@Override public int onStartCommand(Intent intent, int flags, int startId) {//重寫onStartCommand方法 IntentFilter filter = new IntentFilter();//創建IntentFilter對象 filter.addAction("com.justel.service"); registerReceiver(cmdReceiver, filter);//注冊Broadcast Receiver doJob();//調用方法啟動線程,自己來完成 return super.onStartCommand(intent, flags, startId); }
后臺service在doJob()方法中連接服務器并向主程序實時發送廣播。
/** * 啟動一個子純種并連接服務器,接收服務器返回數據data。代碼略。。。 */ Object data;//服務器返回的數據data Intent intent = new Intent();//創建Intent對象 intent.setAction("com.justel.service"); intent.putExtra("data", data); sendBroadcast(intent);//發送廣播
至此,我們實現了主程序通過接收廣播實時更新應用的UI界面。
上述就是小編為大家分享的Android中怎么利用service動態更新UI界面了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。