定義;
型別:1、本地服務(local service)
------應用程式內部
啟動方式:
-------startservice ----stopservice()----stopservice()-----stopself()------stopselfresult()
-------bindservice ----先要unbindservice然後停掉(啟動源銷毀時一定要先解繫結)
2、遠端服務(remote service)
------android系統內部的應用程式之間
------定義ibinder介面
生命週期:
-------startservice:---->startservice()--->oncreate()--->onstartcommmand()--->servicerunning(呼叫停止方法)--->ondestroy()--->service down
-------bindservice: ---->bindservice()--->oncreate()--->onbind()--->service繫結了(呼叫解繫結)--->onunbind()--->ondestroy()--->service down
注:開啟service沒有關閉以前oncreate()只呼叫一次,第二次直接開啟onstartcommmand()方法
start方式特點:
---服務跟啟動源沒有任何聯絡
---無法得到服務物件
bind方式特點:
---通過ibinder介面例項,返回乙個serviceconnection物件給啟動源
---通過serviceconnection物件的相關方法可以得到service物件
本地服務start啟動:直接用intent(context,class)——>startservice(mintent)
補充:intent是四大元件關聯的紐帶
本地服務bind啟動:
intent2 = new intent(mainactivity.this, mybindservice.class);
bindservice(intent2, conn, service.bind_auto_create);
----參1、intent物件
----參2、serviceconnection
----參3、讓服務建立用的 用引數:service.bind_auto_create讓服務正常建立
得到service的回傳資料:
1、binder介面:
---重寫乙個類繼承binder類
---寫乙個返回當前的服務物件的方法;
2、實現繫結:
----實現乙個serviceconnection類
----重寫了兩個方法用來:鏈結、殺死服務
補充:有乙個intentservice類,
1、它裡面包含了執行緒可以處理耗時操作
2、不能併發執行,乙個執行完了才能執行寧乙個;
!!!!!!!!!!!注意啊!!!!!!要在清單檔案中註冊(我經常忘記!!!!!!)
我們先來看清單檔案資訊:
再看activity的實現:
package zxx.serivce;
import android.content.componentname;
import android.content.intent;
import android.content.serviceconnection;
import android.os.bundle;
import android.os.ibinder;
import android.util.log;
import android.view.menu;
import android.view.menuitem;
import android.view.view;
import android.widget.toast;
import zxx.serivce.bindservice.mybinderservice;
public class mainactivity extends activity
/*** service和啟動源接源連線時呼叫。
*/@override
public void onserviceconnected(componentname name, ibinder ibinder)
};} public void doclick(view v)
} @override
protected void ondestroy()
@override
public boolean oncreateoptionsmenu(menu menu)
@override
public boolean onoptionsitemselected(menuitem item)
return super.onoptionsitemselected(item);
}}
service中的實現:
package zxx.serivce;
import android.content.intent;
import android.os.binder;
import android.os.ibinder;
import android.util.log;
public class bindservice extends service
} @override
public void oncreate()
@override
public ibinder onbind(intent intent)
@override
public void ondestroy()
public void paly()
}
startservice啟動模式的實現:
package zxx.serivce;
import android.content.intent;
import android.os.ibinder;
import android.util.log;
public class startservice extends service
@override
public void ondestroy()
@override
public int onstartcommand(intent intent, int flags, int startid)
@override
public void onstart(intent intent, int startid)
@override
public ibinder onbind(intent intent)
}
布局檔案:
mysql怎麼改本地服務 怎麼設定本地伺服器路徑
回答數 104 被採納數 19 2017 01 13 18 12 16 俺又自己解決了 s 476 s 495 資料庫型別 dbtype mysql 資料庫使用者名稱 dbuser root 資料庫密碼 dbpass 17911 伺服器名,本地 dbserver localhost 資料庫名 dbn...
搭建本地 mock 服務
工作中,有時候前端的很多任務作需要後端的支援,但是可能後端的介面還沒有開發完,或者有些時候在聯調階段,修復某個 bug 的時候,環境掛了。那麼這個時候,我們的很多任務作無法順利的進行下去。於是萌生了搭建本地伺服器的想法。首先粗略的說一下它的好處jsonserver gulp 實現 缺點 大部分需求都...
怎麼啟動本地服務
public為靜態資源路徑,預設讀取子檔案index.html use express.static public listen 8083,step1 全域性安裝 http server step2 進入目標資料夾啟動 http server 或者指定埠號 http server p 3000 st...