在Activity中设置两个按钮,分别为启动和关闭Service:

bt01.setOnClickListener(new Button.OnClickListener() {

@Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent i = new Intent(mainActivity.this, MyService.class);
                startService(i);
                Toast.makeText(mainActivity.this, "Service启动成功",
                        Toast.LENGTH_LONG).show();
            }
        });
        bt02.setOnClickListener(new Button.OnClickListener() {

@Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent i = new Intent(mainActivity.this, MyService.class);
                stopService(i);
                Toast.makeText(mainActivity.this, "Service启动成功",
                        Toast.LENGTH_LONG).show();
            }
        });

添加MyService.java

public class MyService extends Service {
    MyThread myThread;

@Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }

@Override
    public void onStart(Intent intent, int startId) {//启动Service
        // TODO Auto-generated method stub
        myThread = new MyThread();
        myThread.start();
        super.onStart(intent, startId);
    }

@Override
    public void onDestroy() {//关闭Service
        // TODO Auto-generated method stub
        myThread.flag = false;
        super.onDestroy();
    }

class MyThread extends Thread {
        boolean flag = true;
        int c = 0;

public void run() {
            while (flag) {
               Intent i = new Intent("com.sunny.myThread");
                i.putExtra("myThread", c);
                sendBroadcast(i);//发送广播,在mainActivity中进行捕获,更新数据
                c++;
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }

}

mainActivity中,添加广播接收器,过滤接收来自action为com.sunny.myThread的广播:

IntentFilter intentFilter = new IntentFilter("com.sunny.myThread");
        MyBroadcastReceiver myBroadcastReceiver = new MyBroadcastReceiver();
        registerReceiver(myBroadcastReceiver, intentFilter);//注册广播接收器

其中:

class MyBroadcastReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            Bundle myBundle = intent.getExtras();
            int myInt = myBundle.getInt("myThread");
                 tv01.setText("后台Service运行了" + myInt + "秒");
        }

}

android 之 service的更多相关文章

  1. Android服务(Service)研究

    Service是android四大组件之一,没有用户界面,一直在后台运行. 为什么使用Service启动新线程执行耗时任务,而不直接在Activity中启动一个子线程处理? 1.Activity会被用 ...

  2. Android中Service 使用详解(LocalService + RemoteService)

    Service 简介: Service分为本地服务(LocalService)和远程服务(RemoteService): 1.本地服务依附在主进程上而不是独立的进程,这样在一定程度上节约了资源,另外L ...

  3. android 入门-Service实时向Activity通过BroadcastReceiver传递数据

    引文: http://www.cnblogs.com/linjiqin/p/3147764.html <RelativeLayout xmlns:android="http://sch ...

  4. android 入门-Service

    sdk 1.7 package com.example.hellowrold; import java.util.Random; import com.example.hellowrold.R.id; ...

  5. Android中Service(服务)详解

    http://blog.csdn.net/ryantang03/article/details/7770939 Android中Service(服务)详解 标签: serviceandroidappl ...

  6. Android中Service的使用

    我个人的理解是:我们平时使用的android系统的app的后台应用,就是这个原理 可以利用Service实现程序在后台运行,依照这个原理,可以通过Service来实现关键代码的运行与实现. <一 ...

  7. 【Android 】Service 全面总结

    1.Service的种类 按运行地点分类: 类别 区别  优点 缺点   应用 本地服务(Local) 该服务依附在主进程上,  服务依附在主进程上而不是独立的进程,这样在一定程度上节约了资源,另外L ...

  8. Android Activity/Service/Broadcaster三大组件之间互相调用

    我们研究两个问题,1.Service如何通过Broadcaster更改activity的一个TextView.(研究这个问题,考虑到Service从服务器端获得消息之后,将msg返回给activity ...

  9. Android 保持Service不被Kill掉的方法--双Service守护 && Android实现双进程守护

    本文分为两个部分,第一部分为双Service守护,第二部分为双进程守护 第一部分: 一.Service简介:Java.lang.Object ↳Android.content.Context  ↳an ...

  10. Android 利用Service BroadcastReceiver实现小例子

    Activity: package com.example.test; import android.app.Activity; import android.content.Context; imp ...

随机推荐

  1. 根据Content获取到ItemsControl中对应的Item

    /// <summary> /// 根据控件的值获取到对应的Item /// </summary> /// <typeparam name="T"&g ...

  2. JS的文本框验证以及form表单的提交阻止

    js: 1.只能输入数字 只能输入数字:<input type="text" onkeyup="javascript:ReNumber(this)" /& ...

  3. 第八章 设计用户界面 之 给Web程序应用用户界面设计

    1. 概述 本章内容包括: 使用CSS创建和应用样式.使用HTML构架用户界面的层次 以及 根据需求实现动态页面内容. 2. 主要内容 2.1 使用CSS创建和应用样式 Razor程序的模板是_Lay ...

  4. CSS Secrets 翻译笔记 01: CSS coding tips

    .firDemoButton{ padding: 6px 16px; border: 1px solid #446d88; background: #58a linear-gradient(#77a0 ...

  5. 说说JVM原理?内存泄漏与溢出的区别?何时产生内存泄漏?

    1.JVM原理 JVM是Java Virtual Machine(Java虚拟机)的缩写,它是整个java实现跨平台的最核心的部分,所有的Java程序会首先被编译为.class的类文件,这种类文件可以 ...

  6. StarUML安装与Win7不兼容解决

    最近在学习建模工具(StarUML)发现 其他功能一切正常 但是无法显示代码导出功能, 正常界面如下: 我的安装确没有导出功能缺少C++,C# ,Java等导出功能 解决办法:     到StarUM ...

  7. 洛谷 P3853 [TJOI2007]路标设置

    路标设置 二分枚举"空旷指数", 做法与跳石头类似. #include <iostream> #include <cstdio> #include < ...

  8. kickstart_2018_round_H_C Let Me Count The Ways

    思路: 容斥. 实现: #include <bits/stdc++.h> using namespace std; typedef long long ll; ; ; ll f[MAXN ...

  9. 浅析linux下软件的安装

    Linux环境: CentOs 6.0 知识点介绍: 一.tarball安装 安装步骤: 将tarball文件在/usr/local/src目录解压缩 ./configure:这个步骤是建立makef ...

  10. java代码(生成日历时间)

    package test; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; p ...