android service 整理

项目经常要跟别的项目进行交互,比如说蓝牙打印机等,或者处理一些网络状态,或者调用baidu、高德等地图的时候就会用到,

或打开了音乐播放之后,便想去看看图片,或者下载文件的时候,我们看看博客。

Service有两种类型:

  1. 本地服务(Local Service):用于应用程序内部
  2. 远程服务(Remote Sercie):用于android系统的应用程序之间 RPC 这种方式跟Windows RPC一样

以下是Service处理的执行事件及流程图:

android service 整理_第1张图片

 

1) 本地服务只是处理一些业务,不跟Activity进行交互,这种情况我们只需要使用startService及stopService即可。

在使用的之前调用如下代码:

Intent i = new Intent("abc.cdf.xxxx");
Bundle bundle = new Bundle();
bundle.putInt("aa", 11);
i.putExtras(bundle);
startService(i);

方法说明:startService(Intent intent)

 

在退出或者结束的时候,调用stopService即可

stopService(i);

方法说明:stopService(Intent intent)

 

2) 本地服务需要与Activity进行交互,那么我们就要使用bindService及unbindService

Intent i = new Intent("abc.bdf.xxxx");
bindService(i, connection, Context.BIND_AUTO_CREATE);
unbindService(connection);

 

方法说明:

boolean bindService(Intent service, ServiceConnection conn, int flags)
void unbindService(ServiceConnection conn)

3) 远程服务(remote),不在一个应用中,也是使用bindService及unbindService

接口描述语言(AIDL)来定义远程服务的接口, 新建aidl文件,系统会自动生成aidl对应的.java文件

 

事例下载地址1,转自 http://yangguangfu.iteye.com/blog/699306

事件下载地址2

事件中几点说明:

图示1:

<service android:name=".receiverservice.BindMusicPlayerService" >
            <intent-filter>
                <action android:name="com.yang.bindMusic22" />
            </intent-filter>
        </service>

11.其中android:name这个是指的类,系统会根据默认的包,找到对应的java文件,

android:name=".receiverservice.BindMusicPlayerService这个系统找到com.yang.main.receiverservice.BindMusicPlayerService。

如果你写成android:name="receiverservice.BindMusicPlayerService"那么系统会到com.yang.mainreceiverservice.BindMusicPlayerService找文件,

然后系统就会直接Crashed

12. <action android:name="com.yang.bindMusic22" />

这里的action的name是你自已指定的名称,这个一般会用上你的包,保持唯一即可,假如这里是com.yang.bindMusic22那么

你在代码中调用service的时候,也要跟这个一样即可,

 

这里再引用二文,说的也挺详细:

http://www.cnblogs.com/yejiurui/p/3429451.html

http://blog.csdn.net/xiaanming/article/details/9750689

http://blog.csdn.net/ryantang03/article/details/8683921 广播的方式

在Service中处理业务,并且将结果发送广播,然后在Activity的注册广播接收器,接收到广播之后更新UI

这种方式只要注册接收器的都可以接收到广播信息。

你可能感兴趣的:(android service 整理)