繫結服務呼叫本地服務中的方法

2021-07-22 03:12:05 字數 1860 閱讀 5692

如果想呼叫服務中的方法, 通過startservice()是做不到的, 這時需要用bindservice來解決.

下面的demo是在activity中呼叫service中的自定義方法---methodinservice

這個demo可以解決在專案開發中呼叫service裡的資料。

這裡在service中使用到了**模式。這是為了,給service元件和activity元件中間新增乙個中間人。

通過**來傳遞資料。也就是binder物件。這個**就是介面iservice

service中的**如下:

1

public

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介面**如下:

1

public

inte***ce

iservice

activity中的**如下:

1

public

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...