Belajar Android Mengenal Service Bagian 1

Service pada Android sebelum masuk materi utama para pembaca sekalian tentu pernah menonton pertandiangan bulutangkis atau baminton. Kalau kita perhatikan sewaktu nonton pertandingan bulutangkis, pasti pernah mendengar kata service. Yah service adalah pukulan bola pertama kali kepada tim yang baru saja mendapatkan point. Kita tidak akan bicara banyak tentang service di bulutangkis. Kita akan bahas tentang Service di Android.

Service adalah Komponen Aplikasi android yang bekerja dibelakang layar, tanpa user interface dan interaksi dengan user. Kalau kita analogikan dengan dunia nyata misalnya di film peran service ini adalah orang-orang yang dibelakang layar seperti penata music, penata gambar, penata rias, kameramen, sutradara dan lainnya.

Kalau yang sudah pakai android, pasti terkesan dengan GMAIL yang tanpa kita buka Aplikasinya bisa menotifikasi kalau ada email baru masuk.

Saat ini kita belum pantas berandai-andai untuk buat aplikasi seperti GMAIL kalau konsep dasar Service aja tidak tahu, sekarang mari kita mulai dari yang sederhana. Walaupun membosankan dan melelahkan tapi kalau kita jalani dengan sepenuh hati insya Allah hasilnya akan banyak manfaatnya. Jujur saja saya sering cepat ngantuk kalau baca buku programming apa lagi bahasa inggris hehe 🙂 tapi kalau baca Novel best Seller mata seakan bersemangat untuk menghabiskannya. Padahal kalau dilihat dari sisi manfaat harusnya kita lebih semangat.

Yuk kita mulai Aplikasi Service Sederhana.

  1. Buat Android Project dengan Nama LearnService

  2. Buat Class baru dengan nama TheService

01package net.agusharyanto.learnservice;
02 
03import android.app.Service;
04import android.content.Intent;
05import android.os.IBinder;
06import android.widget.Toast;
07 
08public class TheService extends Service {
09    @Override
10    public IBinder onBind(Intent arg0) {
11        return null;
12    }
13 
14    @Override
15    public int onStartCommand(Intent intent, int flags, int startId) {
16        // We want this service to continue running until it is explicitly
17        // stopped, so return sticky.
18        Toast.makeText(this, "The Service Started", Toast.LENGTH_LONG).show();
19        return START_STICKY;
20    }
21 
22    @Override
23    public void onDestroy() {
24        super.onDestroy();
25        Toast.makeText(this, "The Service Destroyed", Toast.LENGTH_LONG).show();
26    }
27}

Perhatikan Class TheService mengekstend class Service ini menandakan bahwa Class TheService dinyatakan sebagai Service.

Pada Service diatas kita mengimplementasikan 3 method.

  • Method onBind(). Method ini membuat kita dapat mengkomunikasikan Activity dengan Service.
  • Method onStartCommand(). Method ini akan dipanggil pada saat Service diStart dengan perintah startService(). Jika pada method ini kita mereturn START_STICKY maka service akan jalan terus sampai Service di Stop.
  • Method onDestroy(). Method ini dipanggil ketika service distop.


4. Agar service kita dapat digunakan, harus didaftarkan pada AndroidManifest.xml. Caranya dengan menambahkan <service android:name=“.TheService” />

01<?xml version="1.0" encoding="utf-8"?>
02<manifest xmlns:android="http://schemas.android.com/apk/res/android"
03    package="net.agusharyanto.learnservice"
04    android:versionCode="1"
05    android:versionName="1.0" >
06 
07    <uses-sdk
08        android:minSdkVersion="14"
09        android:targetSdkVersion="17" />
10 
11    <application
12        android:allowBackup="true"
13        android:icon="@drawable/ic_launcher"
14        android:label="@string/app_name"
15        android:theme="@style/AppTheme" >
16        <activity
17            android:name="net.agusharyanto.learnservice.LearnServiceActivity"
18            android:label="@string/app_name" >
19            <intent-filter>
20                <action android:name="android.intent.action.MAIN" />
21 
22                <category android:name="android.intent.category.LAUNCHER" />
23            </intent-filter>
24        </activity>
25        <service android:name=".TheService" />
26    </application>
27 
28</manifest>

5. Sekarang kita kerjakan bagian User Interfacenya, edit main.xml, lalu ketikkan kode berikut

01<?xml version="1.0" encoding="utf-8"?>
02<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
03    android:layout_width="fill_parent"
04    android:layout_height="fill_parent"
05    android:orientation="vertical" >
06 
07    <Button
08        android:id="@+id/btnStartService"
09        android:layout_width="fill_parent"
10        android:layout_height="wrap_content"
11        android:onClick="startService"
12        android:text="Start Service" />
13 
14    <Button
15        android:id="@+id/btnStopService"
16        android:layout_width="fill_parent"
17        android:layout_height="wrap_content"
18        android:onClick="stopService"
19        android:text="Stop Service" />
20 
21</LinearLayout>
    Pada code diatas kita membuat dua Button yaitu button Start Serviceyang apabila diklik akan menjalankan method startService

    dan Stop Service yang apabila diklik akan menjalankan method stopService

5. Buka file LearnServiceActivity.java, lalu ketikkan kode berikut

01package net.agusharyanto.learnservice;
02 
03import android.app.Activity;
04import android.content.Intent;
05import android.os.Bundle;
06import android.view.View;
07 
08public class LearnServiceActivity extends Activity {
09 
10    @Override
11    protected void onCreate(Bundle savedInstanceState) {
12        super.onCreate(savedInstanceState);
13        setContentView(R.layout.main);
14    }
15 
16    public void startService(View view) {
17        startService(new Intent(getBaseContext(), TheService.class));
18    }
19 
20    public void stopService(View view) {
21        stopService(new Intent(getBaseContext(), TheService.class));
22    }
23 
24}
    Pada saat Aplikasi ini dijalankan maka akan Menjalankan LearnServiceActivity dan langsung mengeksekusimethod onCreate dalam hal ini kan menmapilkan user interface yang telah kita buat pada file main.xml.

    Perhatikan method startService disini terdapat syntak yang digunakn untuk menstart Sebuah Service

    dalam hal ini TheService.class Dengan menggunakan perintah

    startService(new Intent(getBaseContext(), TheService.class));

    Sedangkan pada method stopService akan Menstop Service dengan menjalankan perintah

    stopService(
    new Intent(getBaseContext(), TheService.class));

7. Saatnya kita jalankan program kita, lalu klik Start Service maka akan menampikan Toast “The Service Started” 

Klik button Stop Service maka akan menampilkan Toast “Stop Service”

Wah, kalau cuma gitu doang mah buat apa pakai service. Tenang ini baru awal, berlanjut ke tutorial android Service Bagian 2

sumber:
Beginning Android 4 Application Development – Wei Meng-Lee

Semoga Bermanfaat

Salam Hangat

Agus Haryanto

Pembicara Seminar IT

Mobile and Web Application Developer

5 comments to Belajar Android Mengenal Service Bagian 1

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>