編輯:關於android開發
使用bindService方法將如何寫呢? 具體的步驟如下:
1. 使用bindService方法啟動服務,bindService (Intent service, ServiceConnection conn, int flags) 有三個參數,這裡大家可能會對第二個ServiceConnection和最後第三個參數的標識感到陌生,一般在我們調用bindService時需要一個ServiceConnection獲取服務實例以及狀態,代碼如下
Java代碼:
private ServiceConnection sc = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
Toast.makeText(ctx, "android123 service connected", Toast.LENGTH_LONG).show();
}
@Override
public void onServiceDisconnected(ComponentName name) {
Toast.makeText(ctx, "android123 service disconnected", Toast.LENGTH_LONG).show();
}
};
這樣,我們在服務的連接和斷開時都會收到一個Toast的消息提示,而bindService最後的參數一般使用BIND_AUTO_CREATE 標識自動創建。所以一般我們綁定一個服務,使用下面的代碼
bindService(intent, sc, Service.BIND_AUTO_CREATE);
來啟動服務,而解除綁定可以用 unbindService(sc);
2. 上面說的都是在非具體的Service中進行操作,下面來看看Service需要處理哪些內容:
public boolean onUnbind (Intent intent) //反綁定服務時做清理工作
Java代碼:
public boolean onUnbind (Intent intent) //反綁定服務時做清理工作
public void onRebind (Intent intent) //重新綁定時觸發
public abstract IBinder onBind (Intent intent) //我們需要返回一個IBinder對象,所以要實現這個抽象方法
3. 實現onBind方法,這裡我們簡單的給服務的調用者傳遞一個Service的實例
Java代碼:
public class cwjBinder extends Binder{
cwjService fetchService()
{
return cwjService.this;
}
}
我們在構造Service時實例化cwjBinder使用cwjBinder binderObj=new cwjBinder();這時我們在onBind()的返回時設置為binderObj而不是null了。
4. 回到我們調用Service的地方,在ServiceConnection中的 onServiceConnected 方法第二個參數就是我們剛才的IBinder實例了, 該方法原型為 public void onServiceConnected(ComponentName name, IBinder service) ,這時我們可以調用 fetchService方法了。
Android中AlarmManager使用示例(持續更新,已經更改),alarmmanager現在普遍的手機都會有一個鬧鐘的功能,如果使用Android來實現一個鬧鐘可
我的Android第五章:通過Intent實現活動與活動之間的交互,androidintent Intent在活動的操作  
TabLayout和ViewPager簡單實現頁卡的滑動,tablayoutviewpager首先需要在當前的module中的build Gradle的 dependen
Android開啟多進程 1. 為何要開啟多進程 為何開啟android應用要開啟多進程,主要有以下幾點: 單進程所分配的內存不夠,需要更多的內存。在早期android系
Android開發4: Notification編程基礎、Broadca