startService与bindService

转载 2012年03月26日 14:39:15


转自:http://blog.sina.com.cn/s/blog_695bab300100ulr3.html

运行service的方法有两种startService和bindService,区别startService的调用者和serice没有联系,及调用者结束后,service依然继续运行,而bindService组件结束后,service也结束。

该文主要讲的是使用startService启动服务。
在startService调用方法中,service的生命周期:
onCreate()->onStratCommand()->onStart()->服务->onDestroy()
说明:系统中不存在服务时,才执行oncreate方法,否则直接执行onStartCommand

首先创建服务程序,继承service基类
//文件名:servicejava
package jun.xiao;

import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.util.Log;
import android.widget.VideoView;

public classservice extends Service {

@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}

@Override
public voidonCreate() {
// TODOAuto-generated method stub
super.onCreate();
Log.i("Service","Oncreate");
}

@Override
public voidonDestroy() {
// TODOAuto-generated method stub
super.onDestroy();
Log.i("Service","OnDestroy");
}

@Override
public void onRebind(Intent intent) {
// TODO Auto-generated method stub
super.onRebind(intent);
}

@Override
public voidonStart(Intent intent, int startId) {
// TODOAuto-generated method stub
super.onStart(intent, startId);
Log.i("Service","OnStart");
MediaPlayerm=new MediaPlayer();
try{
m.setDataSource("/sdcard/test.mp3");
m.prepare();
m.start();
}
catch(Exceptione)
{
Log.i("播放音乐",e.getMessage());
}
}

@Override
public intonStartCommand(Intent intent, int flags, int startId){
// TODOAuto-generated method stub
Log.i("Service","OnStartCommand");
returnsuper.onStartCommand(intent, flags, startId);
}

@Override
public boolean onUnbind(Intent intent) {
// TODO Auto-generated method stub
return super.onUnbind(intent);
}

}

创建activity,调用startService方法
//文件名:xiaotech.java
package jun.xiao;

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

public class xiaotech extends Activity {
    
   @Override
    publicvoid onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
       Buttonstart=(Button)findViewById(R.id.button1);
       Buttonstop=(Button)findViewById(R.id.button2);
      start.setOnClickListener(lis);
      stop.setOnClickListener(lis);
    }
    privateButton.OnClickListener lis=new Button.OnClickListener()
    {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intentintent=new Intent(xiaotech.this,service.class);
switch(v.getId())
{
case R.id.button1:
startService(intent);
Toast.makeText(xiaotech.this, "开启服务",Toast.LENGTH_SHORT).show();
break;
case R.id.button2:
stopService(intent);
Toast.makeText(xiaotech.this, "停止服务",Toast.LENGTH_SHORT).show();
break;
}
}
    
   };
}

[转载]android之Service(1)startService

[转载]android之Service(1)startService
[转载]android之Service(1)startService
[转载]android之Service(1)startService
[转载]android之Service(1)startService

[转载]android之Service(1)startService

[转载]android之Service(1)startService

音乐播放器bindservice和startService

  • 2016年03月04日 16:25
  • 23.62MB
  • 下载

startService与bindService混合使用对Service生命周期的影响

项目开发中有遇到startService与bindService混合使用的情况,发现其对Service生命周期有很大影响,故与各位分享一下。。。   一、正常情况(应该大家都很熟了,简单介绍): (1...
  • codezjx
  • codezjx
  • 2015年04月27日 20:08
  • 3843

startService 和 bindService的区别

一.Service的简介 1.Service介绍和作用 Service是Android系统中的四大组件之一,它是一种长生命周期的,没有可视化界面,运行于后台的一种服务程序。比如我们播放音乐的时候,...

深入理解Android的startservice和bindservice

一、首先,让我们确认下什么是service? service就是android系统中的服务,它有这么几个特点:它无法与用户直接进行交互、它必须由用户或者其他程序显式的启动、它的优先级比较高,它比...

关于startService 与 bindservice的混用

关于startService 与 bindservice的混用 俗话说得好细节决定成败,好多就是因为细节没注意,导致效率不高,从而花费很多时间调代码,今天我就来讲讲startService 与 bin...

Android中 startService()和bindService()的区别

关于Service的知识,详见郭霖大牛的 Android Service完全解析,关于服务你所需知道的一切(上) 1. startService和bindService关系?服务不能自己运行。一旦...

Android StartService和BindService

一、Service相关方法 startService(),开启一个服务,可以在系统后台Running Apps里面看到服务在运行,不依赖于具体的某个组件,开启后会调用Service的onStartCo...
  • kasogg
  • kasogg
  • 2015年11月10日 10:08
  • 272

Android之startService与bindService的区别

Android执行Service有两种方法,一种是startService,一种是bindService。下面让我们一起来聊一聊这两种执行Service方法的区别。 1、生命周期上的区别   ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:startService与bindService
举报原因:
原因补充:

(最多只允许输入30个字)