测试Service

<strong><span style="font-size:18px;">自定义Service:</span></strong>
/**
 * Created by liuwang on 15-3-15.
 */
public class MyService extends Service {

    private MBinder mBinder = new MBinder();

    public MyService() {
        super();
        System.out.println("MyService---");
    }

    @Override
    public IBinder onBind(Intent intent) {
        System.out.println("onBind---");
        return mBinder;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        System.out.println("onCreate---");
    }

    @Override
    public void onStart(Intent intent, int startId) {
        super.onStart(intent, startId);
        System.out.println("onStart---");
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        System.out.println("onStartCommand---");
        return super.onStartCommand(intent, flags, startId);
    }

    @Override
    public boolean onUnbind(Intent intent) {
        System.out.println("onUnbind---");
        return super.onUnbind(intent);
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        System.out.println("onDestroy---");
    }

    @Override
    public void onRebind(Intent intent) {
        super.onRebind(intent);
        System.out.println("onRebind---");
    }

    @Override
    public void onTaskRemoved(Intent rootIntent) {
        super.onTaskRemoved(rootIntent);
        System.out.println("onTaskRemoved---");
    }

    @Override
    protected void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
        super.dump(fd, writer, args);
        System.out.println("dump---");
    }

    @Override
    public void onTrimMemory(int level) {
        super.onTrimMemory(level);
        System.out.println("onTrimMemory---");
    }

    @Override
    public void onLowMemory() {
        super.onLowMemory();
        System.out.println("onLowMemory---");
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        System.out.println("onConfigurationChanged---");
    }

    class MBinder extends Binder {

    }

}

Activity:

public class MainActivity extends ActionBarActivity implements View.OnClickListener {

    private Button start;
    private Button finish;
    private Button onbind;
    private Button unbind;
    private Intent intent;
    private ServiceConnection sc;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        start = (Button) findViewById(R.id.start);
        finish = (Button) findViewById(R.id.finish);
        onbind = (Button) findViewById(R.id.onbind);
        unbind = (Button) findViewById(R.id.unbind);

        start.setOnClickListener(this);
        finish.setOnClickListener(this);
        onbind.setOnClickListener(this);
        unbind.setOnClickListener(this);

        intent = new Intent();
        intent.setClass(this,MyService.class);

        sc = new ServiceConnection() {
            @Override
            public void onServiceConnected(ComponentName name, IBinder service) {
                System.out.println("连接成功");
            }

            @Override
            public void onServiceDisconnected(ComponentName name) {
                System.out.println("连接失败");
            }
        };

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.start:
                startService(intent);
                break;
            case R.id.finish:
                stopService(intent);
                break;
            case R.id.onbind:
                bindService(intent,sc,BIND_AUTO_CREATE);
                break;
            case R.id.unbind:
                unbindService(sc);

                break;
        }
    }
}

测试1:

当点击启动Service时的流程:

在点击绑定:

点击解绑:

最后点击关闭服务:

测试2:

点击绑定:

点击启动:

点击关闭服务:

无输出。

点击解除绑定:

总结:

当我进行启动服务和绑定服务后,如果只是关闭服务或解绑服务并不会将service杀死。

当我进行启动服务后在绑定,并不会重复创建service。

先启动在绑定的流程:构造方法->oncreate->onstartcommand->onstart->onbind->onserviceconnection

先绑定service在启动service流程:构造方法->oncreate->onbind->onserviceconnection->onstartcommand->onstart

当我重复启动service只会重复调用startcommand和start方法,不会重复调用oncreate

当我进行多次绑定时并不会重复创建多个service

当我绑定service并且退出activity不解绑service时,service会自动被关闭,并且logcat会报错

我可以利用绑定service后启动service然后退出activity解绑service,这样service还不会被kill,再次进入activity我们可以通过关闭service使service关闭。

时间: 2024-08-01 10:40:43

测试Service的相关文章

junit基础学习之-测试service层(3)

测试步骤: 在之前的文章中已经加了junit的环境,这就不需要了. 1.加载junit类,spring配置文件,指明junit测试器,@Runwith 2.定义变量,service,不可以使用spring注解,因为spring注解是建立在server上的. 3.初始化@Before注解. 4.实现测试方法,@Test注解. 1 package swust.edu.cn.postdoctors.service.impl; 2 3 import javax.annotation.Resource;

springboot测试service简单demo

package com.test.service; import com.task.Application;import com.task.model.po.TaskRecordDo;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.conte

Android 测试Service的生命周期

1 package com.example.myapp4; 2 3 import android.support.v7.app.ActionBarActivity; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import android.view.Menu; 7 import android.view.MenuItem; 8 import android.view.View; 9 import android.w

Web Service测试工具小汇

最近一直在做WebService的测试,考虑到手工测试的困难,所以特意去寻找好的测试工具,现在做一个整理. 1..NET WebService Studio 这款工具出自微软内部,最大的优点是可视化很好,不用去看那些XML文件,WebService的基础内容就有XML,但是测试中Case过多,每次测试结果都去看XML文件,看一轮下来对个人的视力是个很大的损害. 从上图可以看到,操作上也很方便,只需要把Service部署到IIS后,在WSDL EndPoint中输入这个要测的Service的URL

拥抱Service Fabric &mdash;&mdash; 目录

理解分布式 经典分布式系统设计 分布式系统演进 Service Fabric基础概念 Node Type和Node Application Stateful Service Stateless Service Actor Service Fabric System Azure Service Fabric Azure Virtual Machine Scaleset Azure Load Balancer 开发Service Fabric应用 创建Azure Service Fabric 简单样

10g RAC 采用service达到taf

service由于oracle数据库中的一个关键概念,利用得当,可以轻松地管理数据库,提高数据库的工作效率. 经service.oracle可以实现server side  taf,简单化client维修,下面我们来看看10g rac 如何测试service实现 serve side  taf 使用dbca来配置taf 通过dbca能够很方便的配置server  side taf 至此.service配置完毕,以下我们验证一下 [[email protected] ~]# su - oracle

使用 Service Workers 来预缓存应用外壳

Progressive Web Apps 是快速且可安装的,这意味着它能在在线.离线.断断续续或者缓慢的网络环境下使用.为了实现这个目标,我们需要使用一个 service worker 来缓存应用外壳,以保证它能始终迅速可用且可靠. 如果你对 service workers 不熟悉,你可以通过阅读 介绍 Service Workers 来了解关于它能做什么,它的生命周期是如何工作的等等知识. service workers 提供的是一种应该被理解为渐进增强的特性,这些特性仅仅作用于支持servi

用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring并测试

这一部分的主要目的是 配置spring-service.xml  也就是配置spring  并测试service层 是否配置成功 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(2 配置spring-dao和测试)在这个基础上面 继续进行spring的配置. 回顾上面  我们已经成功测试通过了Mybatis的配置. 这时候的目录结构是: 一:下面我们继续补充目录结构,在com.peakfortake的文件目录项目 

基于Karma 和 Jasmine 的Angular 测试(持续更新中)

最近对前端测试较感兴趣,尤其是Nodejs + Karma + Jasmine 对Angular 的测试.到处看看,做个记录吧,断断续续的更新. <一> 用Jasmine 测试 Angular 的service 1. 先扔代码吧: var app = angular.module('Application', []); app.factory('myService', function(){     var service  = {};     service.one  = 1;     se