文档章节

Android 学习笔记 4, IntentService

阿良良
 阿良良
发布于 2015/03/05 14:08
字数 239
阅读 11
收藏 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
巴南
私信 提问
一份关于 Java、Kotlin 与 Android 的学习笔记

JavaKotlinAndroidLearn 这是一份关于 Java 、Kotlin 、Android 的学习笔记,既包含对基础知识点的介绍,也包含对一些重要知识点的源码解析,笔记的大纲如下所示: Java 重拾Java(0)-基础知...

叶应是叶
2018/08/08
0
0
Android 异步编程

文章作者:朱鸿,淘宝资深架构师 原文出处:http://hugozhu.myalert.info/2014/06/29/46-async-android.html Android的线程和内存模型 Android操作系统在boot后,会启动一个Zygote(受精卵)进...

鉴客
2014/07/01
1K
1
Android实战经验之图像处理及特效处理的集锦(总结版)

1 Android学习笔记进阶之在图片上涂鸦(能清屏) 2 Android学习笔记之详细讲解画圆角图片 3 Android学习笔记进阶20之得到图片的缩略图 4 Android学习笔记进阶19之给图片加边框 5 Android学习笔...

xiaosi
2012/03/12
39.3K
25
Android面试必会知识点 - ANR详解

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

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

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

Dean83
2012/06/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

2亿用户背后的Flutter应用框架Fish Redux

背景 在闲鱼深度使用 Flutter 开发过程中,我们遇到了业务代码耦合严重,代码可维护性糟糕,如入泥泞。对于闲鱼这样的负责业务场景,我们需要一个统一的应用框架来摆脱当下的开发困境,而这也...

阿里云官方博客
30分钟前
2
0
C++生成随机数:高斯/正态分布(gaussian/normal distribution)

高斯分布也称为正态分布(normal distribution)。 常用的成熟的生成高斯分布随机数序列的方法由Marsaglia和Bray在1964年提出,C++版本如下: #include <stdlib.h>#include <math.h> d...

天蚕宝衣
34分钟前
1
0
从 Jenkins 迁移到 Jenkins X:一场持续交付之旅

背景 在 dailymotion,我们信奉 DevOps 最佳实践,并且重度使用了 Kubernetes。我们的部分产品(并非全部)已经部署在 Kubernetes 上。在迁移我们的广告技术平台时,为了赶时髦(作者你这么直...

微笑向暖wx
38分钟前
2
0
Kafka Producer Consumer

Producer API org.apache.kafka.clients.producer.KafkaProducer 如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:...

编程SHA
45分钟前
1
0
在centos上搭建git服务器并自动同步代码

在centos上搭建git服务器并自动同步代码 tortoisegit git centos linux 5k 次阅读 · 读完需要 15 分钟 0 参考文章 CentOS安装Git实现多人同步开发 centos中GIT服务器搭建及使用密钥连接 简述...

linjin200
46分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部