【Android学习】Android服务之Service(1)--Service初步

Service是Android四大组件中与Activity最相似的组件,且它完全具有自己的生命周期,不过与Activity的区别在于,Service一直在后台运行,它没有用户界面,所以也不可能与用户交互。关于程序中Activity与Service的选择标准是:如果某个程序组件需要在运行时间时向用户呈现某种界面,或者该程序需要与用户交互,就需要使用Activity,否则就应该考虑Service了。

创建Service:

package com.ye_yun_lin.service;

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

public class TestService extends Service{

	@Override
	public IBinder onBind(Intent intent) {
		return null;
	}

	@Override
	public void onCreate() {
		super.onCreate();
		System.out.println("Service onCreat");
	}

	@Override
	public void onDestroy() {
		super.onDestroy();
		System.out.println("Service onDestroy");
	}

	@Override
	public int onStartCommand(Intent intent, int flags, int startId) {
		System.out.println("Service onStartCommand");
		return super.onStartCommand(intent, flags, startId);
	}

}

配置Service:

        <service android:name="com.ye_yun_lin.service.TestService">
            <intent-filter>
                <action android:name="com.ye_yun_lin.service.TestService"/>
            </intent-filter>
        </service>

启动和停止Service:

package com.ye_yun_lin.service;

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

public class MainActivity extends Activity {
	private Button startButton;
	private Button destroyButton;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		System.out.println("Activity onCreat");
		
		startButton=(Button)findViewById(R.id.startbutton);
		destroyButton=(Button)findViewById(R.id.destroybutton);
			
		startButton.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				Intent intent=new Intent();
				intent.setClass(MainActivity.this, TestService.class);
				startService(intent);
			}
		});
		
		destroyButton.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				Intent intent=new Intent();
				intent.setClass(MainActivity.this, TestService.class);
				stopService(intent);
			}
		});
	}

}


点击三次启动Service按钮后,出现以下:


可见,每次Service被创建时会回调onCreate()方法,每当Service被启动时都会回调onStart()方法----多次启动已有的Service组件不会回调onCreate方法,但每次启动都会回调onStartCommand()方法。

上面是Service组件的简单运用,虽然这个Service什么都没干,但是如果希望这个Service组件做某些事情,那么在onCreat()或者onStartCommand()方法中定义相关业务代码即可。

在下一篇文章中,将深入介绍Service。

【Android学习】Android服务之Service(1)--Service初步,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。