Home

Android - Services


Layanan adalah komponen yang berjalan di latar belakang untuk melakukan operasi lama berjalan tanpa perlu berinteraksi dengan pengguna dan bekerja bahkan jika aplikasi hancur. Layanan A dasarnya dapat mengambil dua negara.

StateDescription
StartedSebuah layanan dimulai ketika komponen aplikasi, seperti kegiatan, dimulai dengan memanggil startService (). Setelah dimulai, layanan dapat berjalan di latar belakang tanpa batas, bahkan jika komponen yang memulai hancur.
BoundSebuah layanan terikat ketika komponen aplikasi mengikat itu dengan memanggil bindService (). Sebuah layanan terikat menawarkan antarmuka client-server yang memungkinkan komponen untuk berinteraksi dengan layanan, mengirim permintaan, mendapatkan hasil, dan bahkan melakukannya di proses dengan komunikasi interprocess (IPC).
Layanan A memiliki metode callback siklus hidup yang dapat Anda menerapkan untuk memantau perubahan di negara bagian layanan dan Anda dapat melakukan pekerjaan pada tahap yang sesuai. Diagram di sebelah kiri menunjukkan siklus hidup ketika layanan ini dibuat dengan startService () dan diagram di sebelah kanan menunjukkan siklus hidup ketika layanan ini dibuat dengan bindService (): (image courtesy: android.com)
Android Service lifecycle
Untuk membuat layanan, Anda membuat kelas Java yang memperluas layanan dasar kelas atau salah satu subclass yang ada. Kelas dasar Layanan mendefinisikan berbagai metode callback dan yang paling penting diberikan di bawah ini. Anda tidak perlu untuk mengimplementasikan semua metode callback. Namun, penting bahwa Anda memahami masing-masing dan menerapkan mereka yang memastikan aplikasi Anda berperilaku dengan cara yang pengguna harapkan.
CallbackDescription
onStartCommand()Sistem panggilan metode ini ketika komponen lain, seperti kegiatan, meminta bahwa layanan dimulai, dengan callingstartService (). Jika Anda menerapkan metode ini, adalah tanggung jawab Anda untuk menghentikan layanan ketika pekerjaan dilakukan, dengan memanggil stopSelf () atau stopService () metode.
onBind()Sistem panggilan metode ini ketika komponen lain ingin mengikat dengan layanan dengan memanggil bindService (). Jika Anda menerapkan metode ini, Anda harus menyediakan sebuah antarmuka yang klien gunakan untuk berkomunikasi dengan layanan, dengan mengembalikan sebuah objek IBinder. Anda harus selalu menerapkan metode ini, tetapi jika Anda tidak ingin mengizinkan mengikat, maka Anda harus kembali nol.
onUnbind()Sistem panggilan metode ini ketika semua klien telah terputus dari antarmuka tertentu yang diterbitkan oleh layanan.
onRebind()Sistem panggilan metode ini ketika klien baru telah tersambung ke layanan, setelah sebelumnya telah diberitahu bahwa semua telah terputus di onUnbind nya (Intent).
onCreate()Sistem panggilan metode ini ketika layanan ini pertama dibuat menggunakan onStartCommand () atau onBind (). Panggilan ini diperlukan untuk melakukan satu kali set-up.
onDestroy()Sistem panggilan metode ini ketika layanan tidak lagi digunakan dan sedang hancur. Layanan Anda harus menerapkan ini untuk membersihkan sumber daya seperti benang, pendengar terdaftar, penerima, dll
Berikut layanan kerangka menunjukkan masing-masing metode siklus hidup -
package com.tutorialspoint;

import android.app.Service;
import android.os.IBinder;
import android.content.Intent;
import android.os.Bundle;

public class HelloService extends Service {
   
   /** indicates how to behave if the service is killed */
   int mStartMode;
   
   /** interface for clients that bind */
   IBinder mBinder;     
   
   /** indicates whether onRebind should be used */
   boolean mAllowRebind;

   /** Called when the service is being created. */
   @Override
   public void onCreate() {
     
   }

   /** The service is starting, due to a call to startService() */
   @Override
   public int onStartCommand(Intent intent, int flags, int startId) {
      return mStartMode;
   }

   /** A client is binding to the service with bindService() */
   @Override
   public IBinder onBind(Intent intent) {
      return mBinder;
   }

   /** Called when all clients have unbound with unbindService() */
   @Override
   public boolean onUnbind(Intent intent) {
      return mAllowRebind;
   }

   /** Called when a client is binding to the service with bindService()*/
   @Override
   public void onRebind(Intent intent) {

   }

   /** Called when The service is no longer used and is being destroyed */
   @Override
   public void onDestroy() {

   }
}

Example

Contoh ini akan membawa Anda melalui langkah-langkah sederhana untuk menunjukkan bagaimana untuk membuat Layanan Android Anda sendiri. Ikuti langkah-langkah berikut untuk mengubah aplikasi Android kita buat di Hello World Contoh bab:
StepDescription
1Anda akan menggunakan Android StudioIDE untuk membuat aplikasi Android dan nama itu sebagai Application saya berdasarkan paket com.example.My Aplikasi seperti yang dijelaskan dalam bab Hello World Contoh.
2Memodifikasi file utama kegiatan MainActivity.java menambahkan startService () andstopService () metode.
3Membuat file java MyService.java baru di bawah paket com.example.My Aplikasi. File ini akan memiliki implementasi metode layanan terkait Android.
4Mendefinisikan layanan Anda di AndroidManifest.xml file menggunakan <layanan ... /> tag. Sebuah aplikasi dapat memiliki satu atau lebih layanan tanpa batasan.
5Memodifikasi konten default res file layout / / activity_main.xml untuk menyertakan dua tombol di tata letak linear.
6Tidak perlu mengubah konstanta di res / nilai berkas / strings.xml. Android perawatan studio take dari nilai string.
7Jalankan aplikasi untuk meluncurkan Android emulator dan memverifikasi hasil dari perubahan yang dilakukan dalam aplikasi.
Berikut ini adalah isi dari dimodifikasi kegiatan utama filesrc / com.example.My Aplikasi / MainActivity.java. File ini dapat mencakup setiap metode siklus hidup yang mendasar. Kami telah menambahkan startService () andstopService () metode untuk memulai dan menghentikan layanan.
package com.example.My Application;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.content.Intent;
import android.view.View;

public class MainActivity extends Activity {

   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
   }
   
   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      getMenuInflater().inflate(R.menu.activity_main, menu);
      return true;
   }

   // Method to start the service
   public void startService(View view) {
      startService(new Intent(getBaseContext(), MyService.class));
   }

   // Method to stop the service
   public void stopService(View view) {
      stopService(new Intent(getBaseContext(), MyService.class));
   }
}
Berikut ini adalah isi dari src / com.example.My Aplikasi / MyService.java. File ini dapat memiliki implementasi dari satu atau lebih metode terkait dengan Layanan berdasarkan kebutuhan. Untuk saat ini kita akan menerapkan hanya dua metode onStartCommand () dan onDestroy () -
package com.example.My Application;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;

public class MyService extends Service {
   
   @Override
   public IBinder onBind(Intent arg0) {
      return null;
   }

   @Override
   public int onStartCommand(Intent intent, int flags, int startId) {
      // Let it continue running until it is stopped.
      Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
      return START_STICKY;
   }
   
   @Override
   public void onDestroy() {
      super.onDestroy();
      Toast.makeText(this, "Service Destroyed", Toast.LENGTH_LONG).show();
   }
}
Berikut akan kandungan modifikasi dari AndroidManifest.xml berkas. Di sini kita telah menambahkan <layanan ... /> tag untuk menyertakan layanan kami:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.MyApplication"
   android:versionCode="1"
   android:versionName="1.0" >
   
   <uses-sdk
      android:minSdkVersion="13"
      android:targetSdkVersion="22" />
   
   <application
       android:icon="@drawable/ic_launcher"
       android:label="@string/app_name"
       android:theme="@style/AppTheme" >
       
       <activity
          android:name=".MainActivity"
          android:label="@string/title_activity_main" >
       
          <intent-filter>
             <action android:name="android.intent.action.MAIN" />
             <category android:name="android.intent.category.LAUNCHER"/>
          </intent-filter>
       
       </activity>
       
       <service android:name=".MyService" />
       
   </application>
</manifest>
Berikut akan menjadi isi dari res file layout / / activity_main.xml untuk menyertakan dua tombol:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
   android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
   
   <TextView
      android:id="@+id/textView1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Example of services"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:textSize="30dp" />
      
      <TextView
         android:id="@+id/textView2"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="Tutorials point "
         android:textColor="#ff87ff09"
         android:textSize="30dp"
         android:layout_above="@+id/imageButton"
         android:layout_centerHorizontal="true"
         android:layout_marginBottom="40dp" />

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageButton"
        android:src="@drawable/abc"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button2"
        android:text="Start Services"
        android:onClick="startService"
        android:layout_below="@+id/imageButton"
        android:layout_centerHorizontal="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Stop Services"
        android:id="@+id/button"
        android:onClick="stopService"
        android:layout_below="@+id/button2"
        android:layout_alignLeft="@+id/button2"
        android:layout_alignStart="@+id/button2"
        android:layout_alignRight="@+id/button2"
        android:layout_alignEnd="@+id/button2" />

</RelativeLayout>
Berikut akan menjadi isi dari res / values / strings.xml untuk mendefinisikan dua konstanta baru:
<resources>
    <string name="app_name">My Application</string>
    <string name="menu_settings">Settings</string>
    <string name="title_activity_main">MainActivity</string>
</resources>
Mari kita coba untuk menjalankan Hello kami dimodifikasi Dunia! aplikasi kita hanya dimodifikasi. Saya berasumsi bahwa Anda telah menciptakan AVD Anda saat melakukan pengaturan lingkungan. Untuk menjalankan aplikasi dari Android studio, buka salah satu file kegiatan proyek Anda dan klik Run
Android StudioRun Iconikon dari tool bar. Android Studio menginstal aplikasi pada AVD Anda dan mulai itu dan jika semuanya baik-baik saja dengan Anda set-up dan aplikasi, maka akan muncul jendela berikut Emulator -
Android Service Demo
Sekarang untuk memulai layanan Anda, mari kita klik pada tombol Layanan Start, ini akan memulai layanan dan per program kami di onStartCommand () metode, messageService Dimulai akan muncul di bagian bawah simulator sebagai berikut -
Android Service Start
Untuk menghentikan layanan, Anda dapat mengklik tombol Stop Service.

Next >>> Android - Broadcast Receivers
Sumber:
www.tutorialspoint.com

Unknown

Tempat Tutorial coding dan contoh-contoh aplikasi baik itu php,mysql,android,java, dan html.

Tidak ada komentar:

Posting Komentar