#服务
服务不能new,new出来的只是一个普通java对象不是服务,只能够通过Intent和startService(intent)创建服务。 ###开启方式 * startService,onCreate-onStartCommand-
onDestroy没有与绑定相关的方法。 *
该方法启动的服务所在的进程属于服务进程, *
Activity一旦启动服务,服务就跟Activity一毛钱关系也没有了,只不过运行在同一个进程而已。 * bindService,onCreate-onBind-onUnbind-
onDestroy。 *
绑定后再绑定不会执行任何操作,解绑后再解绑会出异常。 *
该方法启动的服务所在进程不属于服务进程 * Activity与服务建立连接,Activity一旦死亡,服务也会死亡
package com.itheima.runservice;
import android.os.Bundle;
import android.os.IBinder;
import android.app.Activity;
import android.app.Service;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.view.Menu;
import android.view.View;
public class MainActivity extends Activity {
private Intent intent;
private MyServiceConn conn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intent = new Intent(this, MyService.class);
conn = new MyServiceConn();
}
public void start(View v){
startService(intent);
}
public void stop(View v){
stopService(intent);
}
public void bind(View v){
//绑定服务
bindService(intent, conn, BIND_AUTO_CREATE);
}
public void unbind(View v){
//解绑服务
unbindService(conn);
}
class MyServiceConn implements ServiceConnection{
//服务连接成功时,此方法调用
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
}
//服务失去连接时,此方法调用
@Override
public void onServiceDisconnected(ComponentName name) {
}
}
}
//清单文件<service android:name="com.itheima.runservice.MyService"></service>
package com.itheima.runservice;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
public class MyService extends Service {
//绑定时调用
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
System.out.println("bind方法");
return null;//返回Activity和MyService的中间人对象
}
//解绑时调用
@Override
public boolean onUnbind(Intent intent) {
// TODO Auto-generated method stub
System.out.println("unbind方法");
return super.onUnbind(intent);
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
System.out.println("create方法");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
System.out.println("start方法");
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
System.out.println("destroy方法");
super.onDestroy();
}
}
本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/4951686.html,如需转载请自行联系原作者