Android四大元件之二 Service

2021-07-03 22:55:04 字數 3520 閱讀 5349

1.android四大元件之一service

[2]服務分兩種:

1.非繫結服務

startservice() --> 啟動服務  --> oncreate --> onstartcommand --> running

stopservice()/stopself() --> 銷毀服務  --> ondestroy

package com.farsight.unbindservie;

import android.content.intent;

import android.os.bundle;

import android.view.view;

import android.view.view.onclicklistener;

public class android_07_unbindserviceactivity extends activity implements onclicklistener

@override

public void onclick(view v)

else if(v.getid() == r.id.button2)

}}

package com.farsight.unbindservie;

import android.content.intent;

import android.os.ibinder;

import android.util.log;

public class myservice extends service implements runnable

// 建立

@override

public void oncreate()

// 啟動

@override

public int onstartcommand(intent intent, int flags, int startid)

// 銷毀

@override

public void ondestroy()

int count = 0;

@override

public void run() catch (interruptedexception e)

} // 銷毀服務

this.stopself();

}}

<?xml version="1.0" encoding="utf-8"?>

2.繫結服務

將服務繫結到activity元件上。可以實現服務資料向activity傳遞。

activity銷毀,服務也跟著銷毀。

bindservice() --> 繫結服務 --> oncreate --> onbind --> 返回乙個ibinder型別的物件給繫結服務的activity 

--> 系統自動呼叫onserviceconnected接收ibinder型別的物件 --> 服務running

ununbindservice --> 解除繫結 --> onunbind--> ondestroy --> 服務銷毀

[3]服務元件執行在主線程中

package com.farsight.bindservice;

import com.farsight.bindservice.myservice.mybinder;

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.util.log;

import android.view.view;

import android.view.view.onclicklistener;

import android.widget.textview;

public class android_08_bindserviceactivity extends activity implements onclicklistener

@override

public void onclick(view v)

else if(v.getid() == r.id.button2)

else if(v.getid() == r.id.button3) }

mybinder mybinder;

myserviceconnection conn = new myserviceconnection();

//該類提供了服務向活動傳輸資料的通道

class myserviceconnection implements serviceconnection

//當服務繫結異常時,該方法被呼叫

@override

public void onservicedisconnected(componentname name)

}@override

protected void ondestroy()

}

package com.farsight.bindservice;

import android.content.intent;

import android.content.serviceconnection;

import android.os.binder;

import android.os.ibinder;

import android.util.log;

public class myservice extends service implements runnable

// 繫結服務

@override

public ibinder onbind(intent intent)

class mybinder extends binder

} //解除繫結

@override

public boolean onunbind(intent intent)

// 銷毀服務

@override

public void ondestroy()

int count;

@override

public void run() catch (interruptedexception e)

} }}

<?xml version="1.0" encoding="utf-8"?>

android 四大元件

1.activity 2.service 3.contentprovider 應用中的資料,對外進行共享,其它應用可以通過內容提供者,可以訪問到你應用中的資料,對資料進行增刪改查 1 對不同的資料格式,統一了檔案格式和資料訪問api 2 內容提供者要繼承contentprovider類 3 在清單檔...

Android 四大元件

activity intent receiver service content provider 並不是每乙個android應用程式都需要這四種構造塊,這不是必須的。當我們明確了我們的應用需要哪些構造塊後,我們就需要在androidmanifest.xml中登記這些構造塊的清單。這個配置檔案用於定...

android四大元件

android 四大元件 1.contentprovider contentprovider是什麼 android中的乙個應用元件 作為乙個引用元件的表現是生命週期方法 android中內容提供者 一般是內部儲存中的資料 contentprovider 物件的應用場合 例如 3.contentpri...