文档章节

Android 学习笔记 4, IntentService

阿良良
 阿良良
发布于 2015/03/05 14:08
字数 239
阅读 11
收藏 0
点赞 0
评论 0

一、创建ServiceDemo继承IntentService

public class ServiceDemo extends IntentService {

    private static final String TAG = "Service";
    private static final int INTERVAL = 1000 * 15;     // 15s
    private static final int REQUEST_CODE = 0;
    private static final int FLAG = 0;
    
    public ServiceDemo() {
        super(TAG);
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        Log.i(TAG, "Receive an intent: " + intent);
        
        if (NetUtils.isNetConnected(getApplicationContext())) {
            Log.i(TAG, "网络已连接!");
        } else {
            Log.i(TAG, "网络未连接!");
        }
    }
    
    /**
     * 设置后台定时服务
     *
     * @param context 发送intent的Context
     * @param isOn 是否启动服务
     */
    public static void setServiceAlarm(Context context, boolean isOn) {
        Intent i = new Intent(context, ServiceDemo.class);
        PendingIntent pi = PendingIntent.getService(context, REQUEST_CODE, i, FLAG);
        AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
        
        if (isOn) {
            am.setRepeating(AlarmManager.RTC, System.currentTimeMillis(), INTERVAL, pi);
            Log.i(TAG, "后台服务已开启");
        } else {
            am.cancel(pi);
            pi.cancel();
            Log.i(TAG, "后台服务已关闭");
        }
    }

二、在Activity中开始和停止定时服务

mOpenServiceBtn = (Button) findViewById(R.id.open_service_btn);
        mOpenServiceBtn.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                ServiceDemo.setServiceAlarm(ServiceActivity.this, true);
            }
        });

mStopServiceBtn = (Button) findViewById(R.id.stop_service_btn);
        mStopServiceBtn.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                ServiceDemo.setServiceAlarm(ServiceActivity.this, false);
            }
        });

© 著作权归作者所有

共有 人打赏支持
阿良良
粉丝 1
博文 10
码字总数 3238
作品 0
巴南
Android面试必会知识点 - ANR详解

最近在公司出差过多,感觉自己快被废了,这时候正好有大公司给了面试机会,于是就去试试,虽然最后Tencent没有要我,但是过程中让我对Android有了更新的认知,把我的对于Android的理解又提升...

吴雨声
07/02
0
0
小心,AsyncTask 不是萬能的

Don't only use AsyncTask for your download task 要進入 Android 應用開發之門,真的一點都不難,不就是 Java 嘛。這是我最常聽到,剛跨過入門檻開發者告訴我的一句話。 這句話其實是沒有錯...

Dean83
2012/06/08
0
0
Android Service 详解二:创建一个service

在manifest中声明一个service 跟activity以及其它组件一样,你必须在你的应用的manifest文件中声明所有的service们. 要声明你的service,添加一个<service>元素作为<application>元素的儿子...

晨曦之光
2012/03/12
0
0
started service

创建一个开始的服务: 一个开始的服务被启动当另一个组件通过调用。然后这个服务调用方法。当一个服务被启动了,它的是独立于启动它的组件的。这个服务将一直运行于后台,甚至启动它的组件被销...

晨曦之光
2012/03/13
0
0
IntentService源码解析

上一篇我们分析了Android中的线程间通信HandlerThread的原理.充分的利用Handler的通信机制和消息队列。本篇将分析的作用和原理。 警告:本篇的源码可能过于枯燥和乏味,中间涉及到一次采坑,...

香脆的大鸡排
2017/07/21
0
0
第一天学习Android的一些笔记

昨天学习了怎样装Android配置环境,下载SDK用了好久的时间,再加上一开始不会,弄了好长时间,今天第一天学习,跟着视频教程学的。下边是我的一些笔记,仅做留念与学习笔记 。 快捷键: 智能...

子弹兄
2014/01/16
0
0
Android Service和IntentService区别

一、关于Service组件 在Android四大组件中Service是唯一能够后台运行的服务,广播接收器是一个等待着的和观察者的角色,并不属于后台程序,此外,他的生命周期也非常短,在OnReceiver中不能超...

IamOkay
2014/11/23
0
0
android service 的各种用法(IPC、AIDL)

最近在学android service,感觉终于把service的各种使用场景和用到的技术整理得比较明白了,受益颇多,在此记录一下! service的主要功能如下: a. 执行需要长时间运行的操作,这个操作不与用...

wangxigui
2013/05/21
0
3
十大技巧优化Android App性能

无论锤子还是茄子手机的不断冒出,Android系统的手机市场占有率目前来说还是最大的,因此基于Android开发的App数量也是很庞大的。 那么,如何能开发出更高性能的Android App?相信是软件开发...

常翔
2014/10/30
0
1
android白盒测试所需其他安卓开发内容链接整理

Android Intent实现Activity之间跳转并传值:http://www.linuxidc.com/Linux/2011-04/34228.htm android Intent机制详解:http://www.oschina.net/question/56506567909 Android开发中Inten......

智能小松鼠
2014/12/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Git 2.18版本发布:支持Git协议v2,提升性能

Git 2.18版本发布:支持Git协议v2,提升性能Git 2.18版本发布:支持Git协议v2,提升性能 新版本协议的主要驱动力是使 Git 服务端能够对各种 ref(分支与 tag)进行过滤操作。 这就意味着,G...

linux-tao
27分钟前
0
0
python浏览器自动化测试库【2018/7/22-更新】

64位py2.7版本 更新 document_GetResources 枚举页面资源 document_GetresourceText 获取指定url的内容 包括页面图片 下载地址下载地址 密码:upr47x...

开飞色
43分钟前
28
0
关于DCL双重锁失效及解决方案

关于DCL双重锁失效及解决方案 Double Check Lock (DCL)实现单例 DCL 方式实现单例的优点是既能够在需要时才初始化单例,又能够保证线程安全,且单例对象初始化后调用getInstance方法不进行...

DannyCoder
49分钟前
0
0
PowerDesigner 16.5 安装配置

PowerDesigner16.5破解版是一款业内领先且开发人员常用的数据库建模工具,PowerDesigner可以从物理和概念两个层面设计数据库,方便用户制作处清晰直观的数据流程图和结构模型,欢迎有需要的朋...

Gibbons
今天
0
0
mac Homebrew 指令积累

1通用命令 brew install [包名] //安装包 brew list //列举安装的包 brew info [包名] // 显示安装包的详细信息 mysql 相关 #启动mysql 服务 brew service start mysql my...

Kenny100120
今天
0
0
前端Tips: 创建, 发布自己的 Vue UI 组件库

创建, 发布自己的 Vue UI 组件库 前言 在使用 Vue 进行日常开发时, 我们经常会用到一些开源的 UI 库, 如: Element-UI, Vuetify 等. 只需一行命令, 即可方便的将这些库引入我们当前的项目: n...

ssthouse_hust
今天
1
0
大数据教程(2.13):keepalived+nginx(多主多活)高可用集群搭建教程【自动化脚本】

上一章节博主为大家介绍了目前大型互联网项目的keepalived+nginx(主备)高可用系统架构体系,相信大家应该看了博主的文章对keepalived/nginx技术已经有一定的了解,在本节博主将为大家分享k...

em_aaron
今天
5
0
Git 2.18版本发布:支持Git协议v2,提升性能

在最新的官方 Git 客户端正式版2.18中添加了对 Git wire 协议 v2 的支持,并引入了一些性能与 UI 改进的新特性。在 Git 的核心团队成员 Brandon Williams 公开宣布这一消息前几周,Git 协议 ...

六库科技
今天
0
0
Java8新特性之接口

在JDK8以前,我们定义接口类中,方法都是抽象的,并且不能存在静态方法。所有的方法命名规则基本上都是 public [返回类型] [方法名](参数params) throws [异常类型] {}。 JDK8为接口的定义带...

developlee的潇洒人生
今天
0
0
aop + annotation 实现统一日志记录

aop + annotation 实现统一日志记录 在开发中,我们可能需要记录异常日志。由于异常比较分散,每个 service 方法都可能发生异常,如果我们都去做处理,会出现很多重复编码,也不好维护。这种...

长安一梦
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部