Service In Android


Hôm nay mình giới thiệu đên các bạn làm thế nào chúng ta có thể tạo 1 service in android.

Một vài định nghĩa các bạn có thể nghe được là : chúng ta có thể hiểu service ở đậy là một ứng dụng được chạy trên nền tản mà không cần user tương tác đến nó.

Ví dụ trong khi bạn đang chơi game , thì bạn củng có thể chạy một ứng dụng nhạc để nghe nhạc cùng lúc.

Trong trường hợp này : Các bạn để ý thấy rằng mình không cần tương tác gì với music app và lúc đó là sự lựa chọn cho bạn run nó như một serivce

Trong một số trường hợp các bạn có thể tạo ra 1 service mà không cần phải UI gì hết, đơn giản như bạn tạo ra 1 service cứ cách 5p là nó  sẻ Log ra cho chúng ta tọa độ của thiết bị bạn có thể làm nó 1 cách dể dàng .

1 – Tạo ra 1 service đơn giản :

Các bạn tạo ra 1 project AndroidService => MainActivity.java, main.xml nhìn như hình :

d1

Tạo 1 class MyService.java như sau


package com.thaihoanghai.services;

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 intent) {
		// TODO Auto-generated method stub
		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, "Service Started", Toast.LENGTH_LONG).show();
		return START_STICKY;
	}

	@Override
	public void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		Toast.makeText(this, "Service Destroyed", Toast.LENGTH_LONG).show();
	}
}

main.xml

</pre>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:id="@+id/LinearLayout1"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical"
 tools:context=".MainActivity" >

<Button
 android:id="@+id/btnStart"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:text="Start Service" />

<Button
 android:id="@+id/btnStop"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:text="Stop Service" />

</LinearLayout>
<pre>

class MainActivity.java

package com.thaihoanghai.services;

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

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		//====================
		Button btnStart = (Button) findViewById(R.id.btnStart);
		btnStart.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View arg0) {
				startService(new Intent(getBaseContext(), MyService.class));
			}
		});

		//===================
		Button btnStop = (Button) findViewById(R.id.btnStop);
		btnStop.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				stopService(new Intent(getBaseContext(), MyService.class));
			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

Chúng ta khai báo trong mainifest them vào dòng servcie

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

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

<application
 android:allowBackup="true"
 android:icon="@drawable/ic_launcher"
 android:label="@string/app_name"
 android:theme="@style/AppTheme" >
 <activity
 android:name="com.thaihoanghai.services.MainActivity"
 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=".MyService"/>
 </application>

</manifest>
<pre>

Ok các bạn có thể run. Và nhấn để thấy rằng service của chúng ta đả hoạt động

………………Continue…….

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: