文档章节

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)-基础知...

叶应是叶
08/08
0
0
Android面试必会知识点 - ANR详解

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

吴雨声
07/02
0
0
Android基础再回首——四大组件之Activity、Service俩兄弟

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m366917/article/details/54100085 Android基础再回首——四大组件之Activity、Service俩兄弟 偶尔的回首过去...

Aduroidpc
2017/01/05
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

没有更多内容

加载失败,请刷新页面

加载更多

Maven 依赖范围(Dependency Scope)

Dependency Scope Dependency scope is used to limit the transitivity of a dependency, and also to affect the classpath used for various build tasks. 依赖范围用于限制依赖项的传递性......

晨猫
26分钟前
1
0
细述hbase协处理器

1.起因(Why HBase Coprocessor) HBase作为列族数据库最经常被人诟病的特性包括:无法轻易建立“二级索引”,难以执行求和、计数、排序等操作。比如,在旧版本的(<0.92)Hbase中,统计数据表的...

微笑向暖wx
39分钟前
1
0
【实践】如何获得Rinkeby网络的测试以太币

当把智能合约部署到Rinkeby Test Network时,需要获得测试以太币。其网络获取测试以太币的方法同Ropsten Test Network有些不同,本文详细讲解一下。 1 访问网站 访问rinkeby网络(https://w...

HiBlock
今天
1
0
Logback中如何自定义灵活的日志过滤规则

当我们需要对日志的打印要做一些范围的控制的时候,通常都是通过为各个Appender设置不同的Filter配置来实现。在Logback中自带了两个过滤器实现:ch.qos.logback.classic.filter.LevelFilter...

程序猿DD
今天
3
0
ES6中let 和 const 的新特性

在javascript中,我们都知道使用var来声明变量。javascript是函数级作用域,函数内可以访问函数外的变量,函数外不能访问函数内的变量。 ECMAScript 6 是 JavaScript 语言教程,全面介绍 EC...

peakedness丶
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部