<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Android 服務示例 > 原文: [https://javatutorial.net/android-service-example](https://javatutorial.net/android-service-example) 本教程介紹了 Android 中的服務及其生命周期,并提供了有關如何創建服務的示例。 Android 服務與 [Android 活動](https://javatutorial.net/android-activity-example)有很大不同。 這是 Android 應用程序開發的概念。 讓我們討論一下。 ## Android 服務 服務用于實現或執行在我們的應用中運行的后臺操作。 它是一個應用程序組件,用于執行長時間運行的重要后臺任務,例如播放音樂,下載文件或執行網絡事務。 由于服務在后臺運行,因此與活動不同,它沒有任何用戶界面。 它使我們能夠在應用程序中啟用多任務處理。 盡管應用程序已關閉或服務已完成工作或已明確停止,但服務仍在后臺繼續運行。 因此,它比不活動的應用程序具有更高的優先級。 您還可以將其設置為與正在運行的前臺任務相同的優先級。 讓我們討論一下服務類型。 ## Android 服務的類型 Android 中提供三種不同類型的服務。 **調度**:在諸如`jobScheduler`之類的 API 中計劃了一項服務,然后將其稱為計劃服務。 系統檢查`jobScheduler`并在適當的時間執行服務。 **啟動**:如果服務可以由應用程序組件啟動,則將其稱為已啟動服務。 活動調用`startService(0`方法,然后在后臺運行。 通常,此服務執行單個操作。 **綁定**:如果應用程序組件將服務綁定到`bindService()`,則稱為綁定。 它具有一個客戶端服務器接口,該接口允許組件與服務進行交互。 ## Android 服務的生命周期 Android 服務生命周期與 Android 活動完全不同。 如果使用`startService()`創建服務或使用`bindService()`創建服務,則其生命周期可能會有所不同。 下圖顯示了兩個生命周期。 ![Life cycle of service](https://img.kancloud.cn/76/c9/76c9d9a45803a77d5f26e9492ccf708c_389x507.jpg) 服務生命周期 讓我們討論服務生命周期的回調方法。 當使用`startService()`創建服務時,將調用`OnStartCommand()`方法。 執行此方法后,服務星將在后臺運行。 如果使用此方法創建了服務,請通過調用`stopSelf()`或`stopService()`方法將其停止。 如果服務是有界的,則使用`OnBound()`方法。 其他組件使用此方法將自己與服務綁定。`OnCreate()`方法用于創建服務。`OnDestroy()`方法用于銷毀服務。 ## Android 中的服務示例 這是 Android Studio 中的服務示例。 打開您的 IDE 并創建一個新項目。 創建活動并將其命名為`actvity_main`,這是`activty_main.xml`的代碼 ```java <?xml version="1.0" encoding="utf-8"?> <RelativeLayout android:layout_width="368dp" android:layout_height="495dp" xmlns:tools="http://schemas.android.com/tools" tools:layout_editor_absoluteX="8dp" tools:layout_editor_absoluteY="8dp" xmlns:android="http://schemas.android.com/apk/res/android"> <Button android:id="@+id/buttonStart" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="122dp" android:text="Button" tools:text="Start Service" /> <Button android:id="@+id/buttonStop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/buttonStart" android:layout_alignStart="@+id/buttonStart" android:layout_below="@+id/buttonStart" android:layout_marginTop="36dp" android:text="Button" tools:text="Stop Service" /> <Button android:id="@+id/buttonNext" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="44dp" android:text="Button" tools:text="Next" android:layout_below="@+id/buttonStop" android:layout_centerHorizontal="true" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="47dp" android:text="TextView" android:textColorLink="@android:color/black" android:textSize="24sp" tools:text="javaTutorial.net" /> </RelativeLayout> ``` 這是`MainActivity.java`的代碼 ```java package com.example.admin.androidservice; import android.app.Activity; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends Activity implements View.OnClickListener { Button buttonStart, buttonStop,buttonNext; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); buttonStart = (Button) findViewById(R.id.buttonStart); buttonStop = (Button) findViewById(R.id.buttonStop); buttonNext = (Button) findViewById(R.id.buttonNext); buttonStart.setOnClickListener(this); buttonStop.setOnClickListener(this); buttonNext.setOnClickListener(this); } public void onClick(View src) { switch (src.getId()) { case R.id.buttonStart: startService(new Intent(this, SecondActivity.class)); break; case R.id.buttonStop: stopService(new Intent(this, SecondActivity.class)); break; case R.id.buttonNext: Intent intent=new Intent(this,SecondActivity.class); startActivity(intent); break; } } } ``` 為另一個屏幕創建另一個活動,然后為其命名。 打開`activity_second.xml`并粘貼以下代碼 ```java <?xml version="1.0" encoding="utf-8"?> <RelativeLayout android:layout_width="368dp" android:layout_height="495dp" xmlns:tools="http://schemas.android.com/tools" tools:layout_editor_absoluteX="8dp" tools:layout_editor_absoluteY="8dp" xmlns:android="http://schemas.android.com/apk/res/android"> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="96dp" android:layout_marginTop="112dp" android:text="Next Page" /> </RelativeLayout> ``` 這是`secondActivity.java`的代碼 ```java package com.example.admin.androidservice; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class SecondActivity extends AppCompatActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); } } ``` 運行并測試它,這是此代碼的輸出 ![android service](https://img.kancloud.cn/23/99/2399f4bb13337993ac58f18cd0b6e6ad_218x363.jpg) android 服務 ![service](https://img.kancloud.cn/8b/2a/8b2a0e6d7a9a45442f0d0a57b6d8b87e_254x423.jpg) 服務 您可以從此[鏈接](https://github.com/JavaTutorialNetwork/Tutorials/blob/master/AndroidService.rar)下載代碼。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看