LocalService
本地service,指这个service只提供给自己的程序访问,其他程序不能访问。
源码结构:
MainActivity.java
package com.example.siqi;
import com.example.siqi.service.TestLocalService;
import android.os.Bundle;
import android.os.IBinder;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
/**
* 参考1:如何创建一个服务
* http://android.blog.51cto.com/268543/527314
* 参考2:如何创建服务,并与activity交互
* ApiDemos\src\com\example\android\apis\app\ LocalServiceBinding.java
* 和LocalService.java
* 参考3:如何让自己的后台服务在app退出后依然运行
* http://android.tgbus.com/Android/androidnews/200902/178999.shtml
* 参考4:理解服务(推荐)
* http://www.cnblogs.com/newcj/archive/2011/05/30/2061370.html
* @author siqi
*
*/
public class MainActivity extends Activity {
/**
* 自定义一个ServiceConnection类,用于处理连接事件的响应
*/
private ServiceConnection mServiceConnection = new ServiceConnection(){
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
// TODO Auto-generated method stub
mBoundService = ((TestLocalService.LocalBinder)service).getService();
Log.d(TAG, TAG + " onServiceConnected");
Log.d(TAG, TAG + " Service: " + mBoundService);
}
@Override
public void onServiceDisconnected(ComponentName name) {
// TODO Auto-generated method stub
mBoundService = null;
Log.d(TAG, TAG + " onServiceDisconnected");
}
};
/**
* 绑定的service
*/
private TestLocalService mBoundService = null;
/**
* true 表示connection没有与一个service绑定,不需要unbound;
* false表示connection已经与一个service绑定,需要unbound<p>
* 用于记录mServiceConnection是否已经unbound了,一个已经绑定的connection
* 在程序退出前必须要unbo