Thursday, April 25, 2013

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



package net.agusharyanto.learnservice;

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

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

 @Override
 public int onStartCommand(Intent intent, int flags, int startId) {
  // We want this service to continue running until it is explicitly
  // stopped, so return sticky.
  Toast.makeText(this, "The Service Started", Toast.LENGTH_LONG).show();
  return START_STICKY;
 }

 @Override
 public void onDestroy() {
  super.onDestroy();
  Toast.makeText(this, "The Service Destroyed", Toast.LENGTH_LONG).show();
 }
}

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” />

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="net.agusharyanto.learnservice"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="net.agusharyanto.learnservice.LearnServiceActivity"
            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=".TheService" />
    </application>

</manifest>



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


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btnStartService"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="startService"
        android:text="Start Service" />

    <Button
        android:id="@+id/btnStopService"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="stopService"
        android:text="Stop Service" />

</LinearLayout>


Pada code diatas kita membuat dua Button yaitu button Start Serviceyang apabila diklik akan menjalankan method startServicedan Stop Service yang apabila diklik akan menjalankan method stopService

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


package net.agusharyanto.learnservice;

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

public class LearnServiceActivity extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
 }

 public void startService(View view) {
  startService(new Intent(getBaseContext(), TheService.class));
 }

 public void stopService(View view) {
  stopService(new Intent(getBaseContext(), TheService.class));
 }



    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
Agus Haryanto
Pembicara Seminar IT
Mobile and Web Application Developer

No comments:

Post a Comment