欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Anroid四大組件service之本地服務(wù)的示例代碼

 更新時(shí)間:2017年10月23日 09:14:28   作者:彭艷  
本篇文章主要介紹了Anroid四大組件service之本地服務(wù)的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

服務(wù)是Android四大組件之一,與Activity一樣,代表可執(zhí)行程序。但Service不像Activity有可操作的用戶界面,它是一直在后臺(tái)運(yùn)行。用通俗易懂點(diǎn)的話來說:

如果某個(gè)應(yīng)用要在運(yùn)行時(shí)向用戶呈現(xiàn)可操作的信息就應(yīng)該選擇Activity,如果不是就選擇Service。

Service的生命周期如下:

Service只會(huì)被創(chuàng)建一次,也只會(huì)被銷毀一次。那么,如何創(chuàng)建本地服務(wù)呢?

實(shí)現(xiàn)代碼如下:

package temp.com.androidserivce;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.SystemClock;
import android.support.annotation.Nullable;
import android.util.Log;

/**
 * Created by Administrator on 2017/8/18.
 */

public class Myservice extends Service {
  @Override
  public void onCreate() {
    Log.i("test", "服務(wù)被創(chuàng)建");
    super.onCreate();
  }

  @Override
  public int onStartCommand(Intent intent, int flags, int startId) {

    Log.i("test", "服務(wù)被啟動(dòng)");
    new Thread(new myRunnable(startId)).start();
    return super.onStartCommand(intent, flags, startId);

  }

  @Override
  public void onDestroy() {
    Log.i("test", "服務(wù)被銷毀");
    super.onDestroy();
  }

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

  class myRunnable implements Runnable {
    int startId;

    public myRunnable(int startId) {
      this.startId = startId;
    }

    @Override
    public void run() {
      for (int i = 0; i < 10; i++) {
        SystemClock.sleep(1000);
        Log.i("test", i + "");
       }
      //停止服務(wù)
      //stopSelf();
      stopSelf(startId);
      //當(dāng)用無參數(shù)的停止服務(wù)時(shí),將會(huì)銷毀第一次所啟動(dòng)的服務(wù);
      //當(dāng)用帶參數(shù)的停止服務(wù)時(shí),將會(huì)銷毀最末次所啟動(dòng)的服務(wù);

    }
  }
}

要聲明服務(wù),就必須在manifests中進(jìn)行配置

<manifest ... >
 ...
 <application ... >
   <service android:name=".Myservice" android:exported="true"/>

 ... 

</application>

 </manifest>

android:exported="true" 設(shè)置了這個(gè)屬性就表示別人也可以使用你的服務(wù)。

還有一個(gè)需要注意的小點(diǎn),在Myservice中可以看見我啟動(dòng)時(shí)用了一個(gè)子線程去幫我實(shí)現(xiàn)工作,那么我為什么沒有直接把for循環(huán)的那段代碼寫在onStartCommand方法中呢,是因?yàn)閷懺趏nStartCommand中將會(huì)報(bào)ANR程序無響應(yīng)的錯(cuò)誤。就是當(dāng)你所有的事情都去交給主線程做時(shí),就會(huì)造成主線程內(nèi)存溢出,它就會(huì)炸了。這個(gè)時(shí)候也可以用IntentService來取代Service。

package temp.com.androidserivce;

import android.app.IntentService;
import android.content.Intent;
import android.os.SystemClock;
import android.util.Log;

/**
 * Created by Administrator on 2017/8/18.
 */

public class MyService2 extends IntentService {
  public MyService2() {
    super("");
  }
  public MyService2(String name) {
    super(name);
  }

  @Override
  protected void onHandleIntent(Intent intent) {
    for (int i = 0; i <10 ; i++) {
      SystemClock.sleep(1000);
      Log.i("test",i+"");
    }
  }
}

使用這個(gè)相對(duì)而言會(huì)比較簡(jiǎn)單。IntentService是Service的子類。它使用工作線程逐一處理所有啟動(dòng)請(qǐng)求。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳談Matrix中preTranslate()和postTranslate()的理解

    詳談Matrix中preTranslate()和postTranslate()的理解

    這篇文章主要為大家詳細(xì)介紹了Matrix中preTranslate()和postTranslate()的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Android內(nèi)存泄漏檢測(cè)工具LeakCanary

    Android內(nèi)存泄漏檢測(cè)工具LeakCanary

    在Android的性能優(yōu)化中,內(nèi)存優(yōu)化是必不可少的點(diǎn),而內(nèi)存優(yōu)化最重要的一點(diǎn)就是解決內(nèi)存泄漏的問題,在Android的內(nèi)存泄漏分析工具也不少,比如PC端的有:AndroidStudio自帶的Android?Profiler、MAT等工具;手機(jī)端也有,就是我們今天要介紹的LeakCanary
    2023-04-04
  • Android應(yīng)用開發(fā)中Fragment與Activity間通信示例講解

    Android應(yīng)用開發(fā)中Fragment與Activity間通信示例講解

    這篇文章主要介紹了Android應(yīng)用開發(fā)中Fragment與Activity間通信實(shí)例講解,需要的朋友可以參考下
    2016-02-02
  • Android上實(shí)現(xiàn)easyconfig(airkiss)方法

    Android上實(shí)現(xiàn)easyconfig(airkiss)方法

    本篇文章主要給大家講解了在Android系統(tǒng)上實(shí)現(xiàn)easyconfig(airkiss)的方法,有這方面需要的朋友參考學(xué)習(xí)下吧。
    2018-01-01
  • Android列表控件Spinner簡(jiǎn)單用法示例

    Android列表控件Spinner簡(jiǎn)單用法示例

    這篇文章主要介紹了Android列表控件Spinner簡(jiǎn)單用法,結(jié)合實(shí)例形式分析了Android列表控件Spinner的布局與功能實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-12-12
  • Android ContentProvider查看/讀取手機(jī)聯(lián)系人實(shí)例

    Android ContentProvider查看/讀取手機(jī)聯(lián)系人實(shí)例

    本篇文章主要介紹了Android ContentProvider查看/讀取手機(jī)聯(lián)系人實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • 簡(jiǎn)單實(shí)現(xiàn)Android驗(yàn)證碼

    簡(jiǎn)單實(shí)現(xiàn)Android驗(yàn)證碼

    在登錄或者注冊(cè)的時(shí)候要求輸入驗(yàn)證碼,這篇文章主要為大家詳細(xì)介紹了如何簡(jiǎn)單實(shí)現(xiàn)Android驗(yàn)證碼的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Android實(shí)現(xiàn)電影院選座效果

    Android實(shí)現(xiàn)電影院選座效果

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)電影院選座效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Kotlin學(xué)習(xí)筆記之const val與val

    Kotlin學(xué)習(xí)筆記之const val與val

    這篇文章主要給大家介紹了關(guān)于Kotlin學(xué)習(xí)筆記之const val與val的相關(guān)資料,并給大家介紹了const val和val區(qū)別以及Kotlin中var和val的區(qū)別,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • Android深入分析屬性動(dòng)畫源碼

    Android深入分析屬性動(dòng)畫源碼

    這篇文章主要給大家介紹了關(guān)于Android動(dòng)畫系列教程之屬性動(dòng)畫的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評(píng)論