1.start開啟服務的生命週期(重點)
startservice方法開啟服務,stopservice停止服務;
* 服務的特點:
服務被建立時呼叫oncreate、onstartcommand;
服務只能被建立一次,可以開啟多次onstartcommand;
服務只能被停止一次; 沒有onpause、onstop、onresume、onrestart方法,因為service沒有介面,長期執行在後台。
* 生命週期的方法:
oncreate:服務被建立的時候呼叫這個方法;
onstartcommand :開啟服務
ondestroy:銷毀服務
2.bind方式開啟服務的生命週期(重點)
bindservice繫結服務:oncreate、onbind方法;
unbindservice解除繫結:onunbind、ondestroy方法;
特點:
1.服務第一次被繫結的時候,會建立服務物件,呼叫oncreate初始化服務,呼叫onbind方法繫結服務;
2.服務只能被幫定一次;
3.服務只能被解除繫結一次,多次解除繫結會丟擲異常;
生命週期:
oncreate:初始化;
onbind:繫結服務;
onunbind:解除繫結;
ondestroy銷毀服務;
3.為什麼要引入bindservice的api?
目的:無論是startservice還是bindservice都不能得到乙個服務物件,而且直接建立乙個服務物件,都不能直接呼叫服務的業務邏輯方法。
解決辦法:在服務類裡面建立乙個中間人物件,當服務繫結成功時使用onbind方法返回乙個中間人物件, 在activity裡面得到中間人物件,然後讓中間人呼叫服務的業務邏輯方法,從而達到間接呼叫服務業務邏輯方法的目的。
4.繫結服務呼叫服務方法的過程
步驟:
1.在服務類裡面建立乙個中間人,中間人裡面寫乙個方法,讓它呼叫服務的業務邏輯方法;
2.在activity中繫結服務成功後返回乙個中間人物件;
3.在activity中呼叫中間人的方法;
**:1、在服務類裡面建立乙個中間人,中間人裡面寫乙個方法,讓它呼叫服務的業務邏輯方法
package com.qaa.bindservice;
import android.content.intent;
import android.os.binder;
import android.os.ibinder;
import android.widget.toast;
public class testservice extends service
* 中間人,是ibinder型別的
* @author administrator
public class mybinder extends binder
@override
public void oncreate()
@override
public void ondestroy()
3.在activity中呼叫中間人的方法;
public void call(view view)
public void set(view view) {
animationset set = new animationset(false);
alphaanimation aa = new alphaanimation(0, 1.0f);
aa.setduration(3000);
aa.setrepeatcount(2);
aa.setrepeatmode(rotateanimation.reverse);
set.addanimation(aa);
rotateanimation ra = new rotateanimation(0, 360, rotateanimation.relative_to_self, 0.5f, rotateanimation.relative_to_self, 0.5f);
ra.setduration(3000);
ra.setrepeatcount(2);
ra.setrepeatmode(rotateanimation.reverse);
set.addanimation(ra);
scaleanimation sa = new scaleanimation(0, 2.0f, 0, 2.0f, scaleanimation.relative_to_parent, 0.5f, scaleanimation.relative_to_parent, 0.5f);
sa.setduration(3000);
sa.setrepeatcount(2);
sa.setrepeatmode(scaleanimation.reverse);
set.addanimation(sa);
translateanimation ta = new translateanimation(0, 200, 0, 200);
ta.setduration(3000);
ta.setrepeatcount(2);
ta.setrepeatmode(translateanimation.reverse);
set.addanimation(ta);
iv.startanimation(set);
20 廣播與服務
1 廣播 掌握 2 廣播接收者 掌握 在android中,broadcast是一種廣泛運用的在應用程式之間傳輸資訊的機制。而broadcastreceiver是對傳送出來的broadcast進行過濾接受並響應的一類元件。廣播接收者 broadcastreceiver 用於接收廣播intent的,廣播...
廣播與廣播接受者簡述
廣播訊息是android中的用來進行通知的訊息。便於進行系統級別的訊息通知或者自定義的訊息通知。傳送廣播後,註冊該廣播的廣播接收器 broadcast receiver 就可以接收該廣播,然後進行對應的業務操作。廣播可以分為系統級廣播 如手機開機,電池電量發生變化等 和程式內自定義廣播。傳送一條廣播...
adb 啟動服務,傳送廣播
進入adb shell am help am startservice n com.topsec.engine com.topsec.engine.engineservice 參考資料 am broadcast a 廣播動作 am start n 包 package 名 包名.活動 activity...