Android四大元件之Service 筆記

2021-06-20 12:38:03 字數 2685 閱讀 6631

什麼叫service

android中的service跟windows中的服務很類似,是一種沒有使用者操作介面,在特定的內執行,而且不容易被使用者察覺的程式。

在android中服務可分為兩種:

1.本地服務

localservice

執行在本應用程式內部的,可以自行通過呼叫service.stopself()或者service.stopselfresult來自動停止。

2.遠端服務

remoteservice

可執行在android系統中的應用程式之間,可以定義介面並將介面暴露出來給其他應用程式呼叫,通過呼叫bindservice進行服務物件的連線

所有的服務必須在配置檔案androidmanifest.xml中定義,通過context.startservice或者context.bindservice來啟動服務

service的生命週期

通過兩種方式啟動的service的生命週期也會不同

context.startservice() ->oncreate()- >onstart()->service running

--呼叫context.stopservice() ->ondestroy()

context.bindservice()->oncreate()->onbind()

->service running

--呼叫》onunbind() ->

上圖更能詳細說明service生命週期

activity

與服務進行通訊,開發人員通常把通訊方法定義在介面裡,然後讓

ibinder

物件實現該介面,而

activity

通過該介面引用服務

onbind

()方法

返回的ibinder

物件,然後呼叫

ibinder

物件裡自定義的通訊方法。

下面乙個簡單的具體例項來說明以上解決方案

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

strings.xml

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

hello world, mainactivity!

identification

query

package com.eric.test

/** * 查詢介面,服務端和客戶端對話的公共標準,方便客戶端對服務端方法的使用

* */

public inte***ce queryservice

package com.eric.test;

import android.content.intent;

import android.os.binder;

import android.os.ibinder;

public class plateformservice extends service ;

/*** 根據id號,查詢資訊

* @param no

* @return

*/private string query(int id)

return null;

} @override

public ibinder onbind(intent intent)

//返回給客戶端的實現

private final class studentbinder extends binder implements queryservice

}}

package com.eric.test;

import android.content.componentname;

import android.content.intent;

import android.content.serviceconnection;

import android.os.bundle;

import android.os.ibinder;

import android.view.view;

import android.widget.edittext;

import android.widget.textview;

public class mainactivity extends activity

private final class platformconnection implements serviceconnection

@override

public void onservicedisconnected(componentname name)

}/**

* 查詢方法

* @param v 引數必須是view型別

*/public void query(view v)

}

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...