如果想呼叫服務中的方法, 通過startservice()是做不到的, 這時需要用bindservice來解決.
下面的demo是在activity中呼叫service中的自定義方法---methodinservice
這個demo可以解決在專案開發中呼叫service裡的資料。
這裡在service中使用到了**模式。這是為了,給service元件和activity元件中間新增乙個中間人。
通過**來傳遞資料。也就是binder物件。這個**就是介面iservice
service中的**如下:
1public
class demoservice extends
service else17}
1819
public
void
洗桑拿()22}
2324
/**25
* 在執行bindservice時呼叫該方法
26* ibinder相當於內部的小蜜
27*/
28@override
29public
ibinder onbind(intent intent)
3334
@override
35public
void
oncreate()
3940
@override
41public
void
ondestroy()
4546
/**47
* 服務中的方法
48*/
49public
void
methodinservice()
5253 }
iservice介面**如下:
1public
inte***ce
iservice
activity中的**如下:
1public
class mainactivity extends
activity 89
myconn conn;
10//
建立介面的物件
11iservice mybinder;
1213
//繫結服務
14public
void
bindservice(view view)
2021
//解綁服務
22public
void
unbindservice(view view)
2627
/**28
* 呼叫服務裡的方法
29*/
30public
void
callservice(view view)
3536
37/**
38* 服務成功連線的通訊頻道
39*/
40private
class myconn implements
serviceconnection
4950
//服務連線不成功時
51@override
52public
void
onservicedisconnected(componentname name) 55}
56 }
關鍵**已經用紅色標出
在這個demo中, activity想直接呼叫服務中的方法是辦不到的, 於是可以定義乙個**iservice介面,
讓service中的內部類xiaomi來實現該介面, 並重寫抽象方法, 這樣就可以在activity中呼叫了.
Android繫結方式開始服務 呼叫服務當中的方法
1 呼叫過程 2 案例 package com.example.bindcreateservice import com.example.bindcreateservice.chungeservice.mybinder import android.os.bundle import android....
伺服器上tensorboard的本地呼叫
pytorch上用tensorboard視覺化。先安裝tensorboard外掛程式 方法一 pip install tensorboard logger 測試tensorboard from tensorboard logger import configure,log value configu...
安卓開發中呼叫系統服務的方法
直接撥號 intent callintent newintent intent.action call,uri.parse tel 12345678 startactivity callintent 將 號碼傳入撥號程式 intent dialintent newintent intent.acti...