Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehDevi Susanti Hermanto Telah diubah "6 tahun yang lalu
1
Pemrograman Bergerak Pembuatan Service 1
2
Service Suatu service adalah sebuah komponen yang mana berjalan di background tanpa adanya interaksi langsung dengan pemakai. Karena tidak memiliki user interface, dia tidak terkait kepada siklus hidup dari suatu activity. Service memiliki prioritas diatas in-active activity, dan dapat dikonfigurasi untuk direstart jika dihentikan android terkait dengan kekurangan resources ketika resource tersedia kembali.
3
Dua Jenis Service Started, diaktifkan oleh suatu komponen aplikasi (misalnya suatu activity) dengan memanggil startService(). Setelah dijalankan service berjalan seterusnya, bahkan setelah komponen yang mengaktifkannya berhenti. Biasanya service yang tidak mengembalikan hasil kepada pemanggil. Service dapat menghentikan dirinya dengan stopSelf() ataupun stopService(). Bound, suatu service diikat ketika suatu komponen aplikasi mengikatkan kepadanya dengan memanggil bindService(). Suatu bound service menawarkan suatu antarmuka client- server yang memperbolehkan komponen berinteraksi dengan service, mengirim request, mendapatkan hasil. Bound service berjalan sepanjang komponen aplikasi yang terikat kepadanya. Beberapa komponen dapat mengikat kepada service tersebut suatu saat, tetapi setelah semuanya unbind, maka service dihentikan.
4
Siklus Hidup Service OnBind() terjadiketika komponen lain bind dengan service dengan memanggil bindService(). Anda dapat menyediakan suatu interface untuk berkomunikasi dengan klien dengan mengembalikan IBinder, anda tetap harus mengimplementasikan metode ini, jika anda tidak memperbolehkan binding, maka dikembalikan null. OnStartCommand() akan terjadi jika service diaktifkan dengan startService(), service akan berjalan dibackground untuk jangka waktu yang tidak terbatas, anda bertanggung jawab untuk menghentikan service dengan perintah stopSelf() atau stopService() context.startService() | ->onCreate() - >onStartCommand() [service running] context.stopService() | ->onDestroy() [service stops]
5
Pembuatan Service Permbuatan service dilakukan dengan membuat suatu Class yang merupakan subclass dari Service public class MyService extends Service { private static final String TAG = "MyService"; MediaPlayer player; @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } public void onCreate() { Toast.makeText(this, "My Service Created", Toast.LENGTH_LONG).show(); Log.d(TAG, "onCreate"); player = MediaPlayer.create(this, R.raw.wonderful_tonight_eric_clapton); player.setLooping(false); // Set looping public void onStart(Intent intent, int startid) { Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show(); Log.d(TAG, "onStart"); player.start(); public void onDestroy() { Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show(); Log.d(TAG, "onDestroy"); player.stop();
6
Mendaftarkan Service Sama seperti Activity, suatu service perlu didaftarkan pada AndroidManifest <service android:name=".MyService" <intent-filter android:label="com.hendra.testservice.MyService"> </intent-filter> </service>
7
Menjalankan Service (internal)
Untuk menjalankan service yang berada pada aplikasi yang sama kita dapat menggunakan startService dengan mengirim Intent secara explicit. public class TestServiceActivity extends Activity { private static final String TAG = "TestServices"; @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); } public void buttonStartOnClick(View v) { Log.d(TAG, "onClick: starting service"); startService(new Intent(this, MyService.class)); public void buttonStopOnClick(View v) { Log.d(TAG, "onClick: stopping service"); stopService(new Intent(this, MyService.class)); Suatu service yang dijalankan dengan perintah startService akan tetap berjalan sampai terjadi pemanggilan terhadap stopService(), atau terjadi pemanggilan perintah stopSeft() pada internal service tersebut.
8
Menjalankan Service (external)
Sedangkan untuk menjalankan service dari aplikasi yang berbeda, perlu menggunakan permisi sesuai dengan yang didefinisikan pada Service di AndroidManifest, dan menggunakan perintah startService dengan mengirim Intent secara implicit. public class TestExternalServiceActivity extends Activity { private static final String TAG = "TestExternalServices"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void buttonStartOnClick(View v) { Log.d(TAG, "onClick: starting service"); Intent serviceIntent = new Intent(); serviceIntent.setAction("com.hendra.testservice.MyService"); startService(serviceIntent); public void buttonStopOnClick(View v) { stopService(serviceIntent); <uses-permission android:name= "com.hendra.permission.MYSERVICE_PERMISSION"> </uses-permission>
9
Sekian & Terima Kasih 9
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.