導航:首頁 > 操作系統 > androidservice學習

androidservice學習

發布時間:2022-07-24 10:52:13

A. android 怎麼利用service

1、要使用Service,首先就是在配置文件里嗎添加Service,如果不填加,你的Service是不能夠使用的。目前學到的方法有兩種
方法一:<service android:enabled="true" android:name=".PlayService" />
方法二:<service android:name=".PlayService" />
點後面是Service類的名字。
2、工程包括兩個類:
ServiceActivity.java
PlayService.java
其中:ServiceActivity.java定義了兩個按鈕,分別控制音樂的播放與停止。
用startService和stopService完成Activity與Service之間的切換,啟動Service以及取消Service

B. android service有什麼用

Service是Android系統中的四大組件之一,它是一種長生命周期的,沒有可視化界面,運行於後台的一種服務程序。如果service是被開啟的,那麼它的活動生命周期和整個生命周期一同結束。如果service是被綁定的,它們它的活動生命周期是在onUnbind()方法返回後結束。

service積極活動的生命時間(active lifetime)是從onStartCommand()或onBind()被調用開始,它們各自處理由startService()或bindService()方法傳過來的Intent對象。

(2)androidservice學習擴展閱讀

service整體的生命時間是從onCreate()被調用開始,到onDestroy()方法返回為止。和activity一樣,service在onCreate()中進行它的初始化工作,在onDestroy()中釋放殘留的資源。

比如,一個音樂播放service可以在onCreate()中創建播放音樂的線程,在onDestory()中停止這個線程。onCreate()和onDestroy()會被所有的service調用,不論service是通過startService()還是bindService()建立。

C. android學習需要什麼條件和基礎android開發需要花多長時間才能入職

Android基礎:

一、Activity學習
Android環境搭建和應用開發體系,Activity生命周期,Activity管理及Intent七大屬性,傳值,啟動和跳轉,及Activity中返回棧的講解,創建一個Android項目HelloWord
二、UI,View學習
UI5大布局,UI常用控制項,ListView的使用及優化,圖文混排+GridView,ViewPager的使用及優化,Menu+Dialog+Toast+通知,自定義控制項的使用,各種資源的定義和使用,Fragment的生命
三、數據存儲學習
UI5大布局,UI常用控制項,ListView的使用及優化,圖文混排+GridView,ViewPager的使用及優化,Menu+Dialog+Toast+通知,自定義控制項的使用,各種資源的定義和使用,Fragment的生命
四、ContentProvider學習
ContentProvider與ContentResolver,內容解析者ContentResolver的使用講解;自定義內容提供者ContentProvider的詳細講解;獲取常見的數據類型如音樂,視頻,圖像,手機通信錄聯系人信息等
五、Loader學習
實現非同步載入數據,LoaderManager管理多個loader,LoaderCallbacks介面中的抽象方法,Loader裝載器,AsyncTaskLoader非同步
六、線程與進程學習­
AsnycTask的特點及子類,AsnycTask泛型參數,AsnycTask常用方法,Handler的使用,Handler原理及消息機制,線程運行周期,線程安全(死鎖,線程同步),線程的常用方法,線程交互,線程使用:生產者與消費者,Socket網路編程
七、JSON和SVN學習
JSON的概念 JSONObject,JSONStringer,JSONArray,JSONTokener類的使用,JSONException的使用svn的日常
八、Broadcast學習
廣播的注冊方式,廣播的分類,廣播的發送,Android中常用的系統廣播
九、Service學習
Service生命周期,掌握Service的使用場景,Service的分類,啟動Service,Service與Thread之間的區分,BindService的生命周期,AIDL的使用及講解,Messenger信使的講解
以上就是成為一名Android開發工程師在初級階段所要掌握的知識,最後想向大家強調一點,學編程基礎一定要打牢,所有的概念和知識點必須理解透徹,自學的時候往往只是知道這段代碼怎麼用,卻不能理解其中含義,所以成為一名優秀的Android開發工程師不僅要知其然更要知其所以然。
一般Android工程師在系統的學習下大約4-5個月就可以。

D. 移動平台應用開發這門課程第十章Android中Service(服務)的知識點有哪些

移動平台應用開發這門課第十章Android中Service(服務)的知識點包含章節導引,第一節什麼是Service,第二節普通服務,第三節綁定式服務,第四節Service的生命周期,第五節Service通信,。

E. Android中怎麼啟動關閉Service及功能解釋

調用startService就是啟動service,調用stopService就是關閉service。

android中Service是運行在後台的東西,級別與activity差不多。既然說service是運行在後台的服務,那麼它就是不可見的,沒有界面的東西。可以啟動一個服務Service來播放音樂,或者記錄地理信息位置的改變,或者啟動一個服務來運行並一直監聽某種動作。Service和其他組件一樣,都是運行在主線程中,因此不能用它來做耗時的請求或者動作。

服務一般分為兩種:
1:本地服務, Local Service 用於應用程序內部。在Service可以調用Context.startService()啟動,調用Context.stopService()結束。在內部可以調用Service.stopSelf() 或 Service.stopSelfResult()來自己停止。無論調用了多少次startService(),都只需調用一次stopService()來停止。
2:遠程服務, Remote Service 用於android系統內部的應用程序之間。可以定義介面並把介面暴露出來,以便其他應用進行操作。客戶端建立到服務對象的連接,並通過那個連接來調用服務。調用Context.bindService()方法建立連接,並啟動,以調用 Context.unbindService()關閉連接。多個客戶端可以綁定至同一個服務。如果服務此時還沒有載入,bindService()會先載入它。

F. Android中的Service到底起什麼作用

Service 是android的一種機制,當它運行的時候如果是Local Service,那麼對應的 Service 是運行在主進程的 main 線程上的。如:onCreate,onStart 這些函數在被系統調用的時候都是在主進程的 main 線程上運行的。如果是Remote Service,那麼對應的 Service 則是運行在獨立進程的 main 線程上。因此請不要把 Service 理解成線程,它跟線程半毛錢的關系都沒有!

既然這樣,那麼我們為什麼要用 Service 呢?其實這跟 android 的系統機制有關,我們先拿 Thread 來說。Thread 的運行是獨立於 Activity 的,也就是說當一個 Activity 被 finish 之後,如果你沒有主動停止 Thread 或者 Thread 里的 run 方法沒有執行完畢的話,Thread 也會一直執行。因此這里會出現一個問題:當 Activity 被 finish 之後,你不再持有該 Thread 的引用。另一方面,你沒有辦法在不同的 Activity 中對同一 Thread 進行控制。

舉個例子:如果你的 Thread 需要不停地隔一段時間就要連接伺服器做某種同步的話,該 Thread 需要在 Activity 沒有start的時候也在運行。這個時候當你 start 一個 Activity 就沒有辦法在該 Activity 裡面控制之前創建的 Thread。因此你便需要創建並啟動一個 Service ,在 Service 裡面創建、運行並控制該 Thread,這樣便解決了該問題(因為任何 Activity 都可以控制同一 Service,而系統也只會創建一個對應 Service 的實例)。

因此你可以把 Service 想像成一種消息服務,而你可以在任何有 Context 的地方調用 Context.startService、Context.stopService、Context.bindService,Context.unbindService,來控制它,你也可以在 Service 里注冊 BroadcastReceiver,在其他地方通過發送 broadcast 來控制它,當然這些都是 Thread 做不到的。

G. 如何寫android service

android SDK提供了Service,用於類似*nix守護進程或者windows的服務。
Service有兩種類型:
1. 本地服務(Local Service):用於應用程序內部
2. 遠程服務(Remote Sercie):用於android系統內部的應用程序之間
前者用於實現應用程序自己的一些耗時任務,比如查詢升級信息,並不佔用應用程序比如Activity所屬線程,而是單開線程後台執行,這樣用戶體驗比較好。
後者可被其他應用程序復用,比如天氣預報服務,其他應用程序不需要再寫這樣的服務,調用已有的即可。
編寫不需和Activity交互的本地服務示例
本地服務編寫比較簡單。首先,要創建一個Service類,該類繼承android的Service類。這里寫了一個計數服務的類,每秒鍾為計數器加一。在服務類的內部,還創建了一個線程,用於實現後台執行上述業務邏輯。
package com.easymorse;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;

public class CountService extends Service {

private boolean threadDisable;

private int count;

@Override
public IBinder onBind(Intent intent) {
return null;
}

@Override
public void onCreate() {
super.onCreate();
new Thread(new Runnable() {

@Override
public void run() {
while (!threadDisable) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
count++;
Log.v("CountService", "Count is " + count);
}
}
}).start();
}

@Override
public void onDestroy() {
super.onDestroy();
this.threadDisable = true;
Log.v("CountService", "on destroy");
}

public int getCount() {
return count;
}
}

需要將該服務注冊到配置文件AndroidManifest.xml中,否則無法找到:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.easymorse" android:versionCode="1" android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".LocalServiceDemoActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name="CountService" />
</application>
<uses-sdk android:minSdkVersion="3" />
</manifest>

在Activity中啟動和關閉本地服務。
package com.easymorse;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

public class LocalServiceDemoActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

this.startService(new Intent(this, CountService.class));
}

@Override
protected void onDestroy() {
super.onDestroy();
this.stopService(new Intent(this, CountService.class));
}
}

H. Android中Service服務有哪些

Service分為本地服務(LoaclService)和遠程服務(RemoteService)。
本地服務:用於應用程序內部,這也與客戶端(可以理解也activity)進行通信就很方便。
遠程服務:用於android系統內部的應用程序之間。

I. android程序設計基礎中service的基本原理是什麼

1. 說明
android的後台運行在很多service,它們在系統啟動時被SystemServer開啟,支持系統的正常工作,比如MountService監聽是否有SD卡安裝及移除,ClipboardService提供剪切板功能,PackageManagerService提供軟體包的安裝移除及查看等等,應用程序可以通過系統提供的Manager介面來訪問這些Service提供的數據,以下將說明他們的工具流程
2. 舉例說明基本流程
以android系統支持sensor(感測器)實例來說明框架層的service和manager是如何配合工作的
1) 什麼是sensor
sensor是感測器, 比如控制橫豎屏切換利用的就是重力感測器(gsensor), 還有accelerator sensor可取得x, y, z三個軸上的加速度(應用如平衡球, 小猴吃香蕉等)
2) 應用程序調用(以下為關鍵代碼)
sensorManager=(SensorManager)getSystemService(context.SENSOR_SERVICE);
lightSensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
sensorManager.registerListener(sensorListener, lightSensor, SensorManager.SENSOR_DELAY_NORMAL);
3) Manager層
a) 提供給應用程序調用的介面,同實與Service交互,實現功能
frameworks/base/core/java/android/hardware/SensorManager.java
4) Service層
a) 開機時就運行的管理Sensor的後台服務
frameworks/base/services/java/com/android/server/SensorService.java
b) snesor後台服務需要的JNI,通過它與系統級交互
frameworks/base/services/jni/com_android_server_SensorService.cpp
5) 系統層
a) 感測器的頭文件,硬體提供商按此文件的定義實現其功能
hardware/libhardware/include/hardware/sensors.h
b) 感測器的系統層實現,與內核交互,此處通常是硬體提供商提供的
hareware/libsensors
6) 內核及硬體層
內核訪問硬體,同時以設備文件等方式提供給上層控制介面和感測器數據
3. 系統層實現
1) frameworks/base/core/java/android/*Manager.java 對應用的介面
2) frameworks/base/core/jni/ 對應用的介面的JNI
3) frameworks/base/services/java/com/android/server/ 後台服務
4) frameworks/base/services/jni/ JNI與系統層介面
5) hardware/libhardware/include/ 系統層頭文件
6) hardware/libxxx 系統庫支持
7) 內核支持
4. 應用程序如何使用
1) 查看系統提供哪些服務
find frameworks/base/core/java/android/ -name *Manager.java
此處可以看到調用系統提供服務的入口
2) 一般register listener,事件發生時都收到回調
5. 新建一個service(以froyo為例)
1) 介面:介面供應用調用
frameworks/base/core/java/android/app/ContextImpl.java 加服務名與Manager對應
frameworks/base/core/java/android/content/Context.java 加服務名定義
2) Manager:提供服務對應的調用介面
frameworks/base/core/java/android/app/StartXXXXManager.java 實現調用介面
frameworks/base/core/java/android/app/IXXXXManager.aidl 定義調用介面
frameworks/base/Android.mk 加入aidl的編譯
3) service:提供後台服務支持
frameworks/base/services/java/com/android/server/XXXXService.java 服務實現
frameworks/base/services/java/com/android/server/SystemServer.java 啟動服務

閱讀全文

與androidservice學習相關的資料

熱點內容
驅動級進程代理源碼 瀏覽:778
androidshape畫線 瀏覽:504
程序員想辭職被拒絕 瀏覽:99
java面試邏輯 瀏覽:740
如何下載全英文app 瀏覽:722
js函數式編程指南 瀏覽:378
為什麼安卓手機相機啟動會卡 瀏覽:339
python中t是什麼意思 瀏覽:762
移動硬碟內存加密 瀏覽:405
單片機測角度 瀏覽:862
URL伺服器地址怎麼填 瀏覽:436
壓縮餅干會導致血糖高嗎 瀏覽:567
cad中xc命令怎麼用 瀏覽:422
戴爾伺服器怎麼看網卡介面 瀏覽:821
鹽鐵論pdf 瀏覽:422
最短路徑的生成演算法可用 瀏覽:455
蘋果備忘錄怎麼不能加密了 瀏覽:624
殺掉java進程命令 瀏覽:990
汽車不開壓縮機能製冷嘛 瀏覽:431
碰碰球模擬器安卓怎麼下載 瀏覽:449