Service(一):认识service

Activity是与用户打交道的,而Service是在后台运行的。

这个程序介绍了下如何启动和停止一个Service,以及在后台打印消息,我添加了一些注释。

在activity_main中将布局改为线性布局,方向改为垂直并添加两个按钮,

 android:orientation="vertical"
<Button
        android:layout_width="69dp"
        android:layout_height="wrap_content"
        android:text="启动服务"
        android:id="@+id/btnStartService"
        android:layout_weight="0.06" />
    <Button
        android:layout_width="69dp"
        android:layout_height="wrap_content"
        android:text="停止服务"
        android:id="@+id/btnStopService"
        android:layout_weight="0.06" />

在MainActivity中

 intent = new Intent(MainActivity.this,MyService.class);//启动另一个活动

        findViewById(R.id.btnStartService).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startService(intent);
            }
        });

        findViewById(R.id.btnStopService).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                stopService(intent);
            }
        });

在MyService中,负责在后台打印消息,注意如何创建一个线程:

 public int onStartCommand(Intent intent, int flags, int startId) {
        //startService()启动时,这个函数自动启动
        new Thread(){
            //创建一个新线程
            @Override
            public void run() {
                super.run();

                while (true) {
                    System.out.println("服务正在运行...");

                    try {
                        sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }.start();
        return super.onStartCommand(intent, flags, startId);
    }

具体参考: http://www.jikexueyuan.com/course/683.html

时间: 2024-10-14 10:38:19

Service(一):认识service的相关文章

CentOS 7 防火墙 出现Failed to start iptables.service: Unit iptables.service failed to load

错误信息如下: [root]# service iptables start Redirecting to /bin/systemctl start iptables.service Failed to start iptables.service: Unit iptables.service failed to load: No such file or directory.解决方法如下: 一直用CentOS 6 习惯了,一下没适应过来.防火墙配置后执行service iptables sav

解读Android之Service(2)Bound Service

翻译自android官方文档,并根据自己测试形成下面的内容. 这是service的第二部分bound service.若第一部分没看的,请参考:上一篇. bound service 相当于客户-服务器接口中的服务器.bound service 允许其它组件(除了broadcast receiver)绑定该service,然后进一步操作:发送请求,接收响应,甚至IPC.bound service 只有在其他组件绑定它时才处于存活状态,且会受到绑定它的组件影响. 下面将具体介绍如何创建bound s

Deploying OpenFire for IM (instant message) service (TCP/IP service) with database MySQL , client Spark on linux部署OpenFire IM 消息中间件服务

Are you a hacker? How to build another QQ/Wechat/whatsapp/skype/imessage? Let's go through this!!!! Materials: A linux/unix/windows/mac computer/server, and do some basic things! Are you feeling high? Okay, let's ride the rocket! Get materials: 1. A

Local System、Local Service與Network Service

CreateService参数介绍SC_HANDLE CreateService( SC_HANDLE hSCManager, //服务控制管理程序维护的登记数据库的句柄,由系统函数OpenSCManager 返回 LPCTSTR lpServiceName, //以NULL 结尾的服务名,用于创建登记数据库中的关键字 LPCTSTR lpDisplayName, //以NULL 结尾的服务名,用于用户界面标识服务 DWORD dwDesiredAccess, //指定服务返回类型 DWORD

关于Failed to check the status of the service com.taotao.service.ItemService. No provider available for the service【已解决】

项目中用dubbo发生: Failed to check the status of the service com.taotao.service.ItemService. No provider available for the service 原因: Dubbo缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止Spring初始化完成,以便上线时,能及早发现问题,默认check=true. 如果你的Spring容器是懒加载的,或者通过API编程延迟引用服务,请关闭check,否则

Unable to resolve address &#39; &#39; service &#39; &#39;: Name or service not known

(1)unable to connect to server at '192.168.0.22:16509': Network is unreachable 原因一般是因为ip地址没有正确,到另一台主机上  用ifconfig  查看ip 是否正确,然后看看能否互相ping 通 (2)Unable to resolve address ' ' service ' ': Name or service not known 在每次使用  virt-manager 的时候   建立两台机器之间的连接,

docker安装完报错:Failed to start docker.service: Unit docker.service is masked

执行 systemctl start docker 报错 Failed to start docker.service: Unit docker.service is masked. 解决 systemctl unmask docker.service systemctl unmask docker.socket systemctl start docker.service 原文地址:https://www.cnblogs.com/chenqionghe/p/11478863.html

添加service 和删除service

Install Service sc create NCS.QMS.1QTicketPrinting.SG binpath= "D:\NCS\1Q_SG\ReportService\NCS.QMS.Reports.AppHost.exe" displayname= "NCS.QMS.1QTicketPrinting.SG" start= auto sc description NCS.QMS.1QTicketPrinting.SG "Report prin

Service之“停止Service”

在Service类中,用于停止Service的方法有如下三个:     1. public final void stopSelf();     2. public final void stopSelf(int startId);     3. public final boolean stopSelfResult(int startId); 先说最好理解的,"public final void stopSelf()". 这个方法可以类比于Activity.finish().作用就是

启动service和绑定service的区别

当我们启动service的时候首先会调用 onCreate():然后调用onStartCommand()方法:再次启动service的时候只会调用onStartCommand()方法:因为只有一个服务! 这时候如果我们返回主界面服务正常运行: 我们绑定service的时候也会调用 onCreate():但是不会调用onStartCommand(): 如果绑定了service我们返回主界面的时候服务会直接抛出异常,并且执行ondestory方法():