一般來說,activity呼叫service 分為兩種:程序內呼叫和程序間呼叫。程序內呼叫時比較常用的一種,在程序內呼叫中我們常常使用的是bindservice來啟動service(關於這種啟動方式的好處,才疏學淺就不再這賣弄了)。下面就這兩種呼叫方式分別進行簡單介紹:
1.乙個簡單的service:
package gu.chuan.hang;2.在activity中繫結service並測試效果: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()
}
package gu.chuan.hang;3.截個圖吧,更清楚一點: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) };}
1.首先定義乙個aidl檔案(擴充套件名為.aidl):
package gu.chuan.hang.remoteservice.aidl;2.定義乙個實現了aidl的服務:inte***ce
authorinfo
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}}
"4.啟動並呼叫service中的方法:gu.chuan.hang.remoteservice.aidl.myservice
"android:process="
:remote
"android:exported="
false
" >
public5.附上效果截圖:class
mainactivity extends activity
private serviceconnection mserviceconnection=new
serviceconnection()
catch
(remoteexception e)
}@override
public
void
onservicedisconnected(componentname name) };}
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...