启动型service

/*
* Google要求从android5.0开始必须使用显示Intent启动service组件;
*
* Service的介绍
* – Service是一个应用程序组件,Android中四大组件之一
* – 没有用户操作界面,它运行于系统中不容易被用户发觉,可以使用它开发如监控之类的程序;
*
* Service的用途
* – 应用内或者应用间的数据通信
* – 执行长时间运行的操作
*
* 服务(Service)的误区:
* – Service不是一个单独的进程,服务对象并不是运行在它自己的进程中,它是作为应用程序的一部分运行在同一个进程中(除非另有规定)
* – Service不是一个线程
*
* 启动Service的两种方式
* – 启动型(Started)
* • 开始服务:startService
* • 停止服务:stopService
* – 绑定型(Bound)
* • 绑定:bindService
* • 取消绑定:unbindService
*
* 使用启动型还是绑定型service;
* 启动型service与访问者之间基本上不存在太多的关联,因此无法进行通信、交换数据,所以如果需要的话就应该使用绑定型service;
*
* 启动型与绑定型的区别:
* -启动型:Activity和Service相对独立,Activity销毁,服务不会终止;
* –生命周期:一个服务只会创建一次、销毁一次,但是可以开始多次,
* 即onCreate和onDestroy方法只会被调用一次,而onStart方法会被调用很多次
* -绑定型:Activity和Service绑定,Activity退出,服务也自动销毁;
*
* 注意:四大组件都需要在AndroidMainfest.xml中注册,;
*/

public class MainActivity extends Activity implements OnClickListener {
    Button starService, stopService;
    Intent intent;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        starService = (Button)findViewById(R.id.starService);
        stopService = (Button)findViewById(R.id.stopService);

        starService.setOnClickListener(this);
        stopService.setOnClickListener(this);

        intent = new Intent(this, MyStartService.class);
    }

    @Override
    public void onClick(View v) 
    {
        switch(v.getId())
        {
        case R.id.starService:
            startService(intent);
            break;
        case R.id.stopService:
            stopService(intent);
            break;  
        }
    }

}

你可能感兴趣的:(启动型service)