本文共 2813 字,大约阅读时间需要 9 分钟。
#服务
服务不能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) { } }}//清单文件
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,如需转载请自行联系原作者