Activity 呼叫Service的方法

2021-09-08 04:22:09 字數 2320 閱讀 8339

一般來說,activity呼叫service 分為兩種:程序內呼叫和程序間呼叫。程序內呼叫時比較常用的一種,在程序內呼叫中我們常常使用的是bindservice來啟動service(關於這種啟動方式的好處,才疏學淺就不再這賣弄了)。下面就這兩種呼叫方式分別進行簡單介紹:

1.乙個簡單的service:

package gu.chuan.hang;

import android.content.intent;

import android.os.binder;

import android.os.ibinder;

public

class

myservice extends service

public

class

mybinder extends binder

}/**

* 在service中定義這個方法,用於測試

* @return

*/public

string getauthorname()

}

2.在activity中繫結service並測試效果:

package gu.chuan.hang;

import android.content.componentname;

import android.content.context;

import android.content.intent;

import android.content.serviceconnection;

import android.os.bundle;

import android.os.ibinder;

import android.widget.toast;

public

class

mainactivity extends activity

serviceconnection mserviceconnection = new

serviceconnection()

@override

public

void

onservicedisconnected(componentname name) };}

3.截個圖吧,更清楚一點: 

1.首先定義乙個aidl檔案(擴充套件名為.aidl):

package gu.chuan.hang.remoteservice.aidl;

inte***ce

authorinfo

2.定義乙個實現了aidl的服務:

package gu.chuan.hang.remoteservice.aidl;

import android.content.intent;

import android.os.ibinder;

import android.os.remoteexception;

public

class

myservice extends service

private

class

mystub extends authorinfo.stub}}

"

gu.chuan.hang.remoteservice.aidl.myservice

"android:process="

:remote

"android:exported="

false

" >

4.啟動並呼叫service中的方法:

public

class

mainactivity extends activity

private serviceconnection mserviceconnection=new

serviceconnection()

catch

(remoteexception e)

}@override

public

void

onservicedisconnected(componentname name) };}

5.附上效果截圖: 

6.關於aidl程序間呼叫是參考了

大神之作,進行的精簡修改。

Fragment呼叫Activity中的方法

activity中嵌入了fragment,則在fragment中可以通過getactivity 方法得到所依賴的目標activity,如 mainactivity中嵌入了檔案列表fragmentfilelistmainactivity 改變標題全選文字 顯示 隱藏標題中的選擇檢視 public vo...

Activity呼叫棧的分析

生活本來就不容易啊,而我們的不努力只會讓生活變得更加無賴。今天看了 android群英傳 的有關activity呼叫棧的相關知識,所以得來寫點東西記錄今天的收穫。androidmainifest啟動模式 standard activity預設的啟動模式,每次建立activity都會new出乙個新的例...

centos下為redis新增service

為了方便地重啟redis服務 以下為配置service快速啟動或停止redis服務的步驟 第一步 首先 進入redis安裝目錄中的utils中 第二步 將其中的redis init script檔案複製到 etc init.d下 第三步 進入 etc init.d 將redis init scrip...