IntentService的用法,对比Service它会按顺序执行,不会像Service一样并发执行。

package com.lixu.intentservice;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        for(int i=0;i<20;i++){
            Intent intent=new Intent(this,MyAppService.class);
            intent.putExtra(Changliang.KEY, i+"");

            startService(intent);
        }
    }
 //不要忘了关闭服务
    @Override
    protected void onDestroy() {
        Intent intent=new Intent(this,MyAppService.class);
        stopService(intent);
        super.onDestroy();
    }

}
package com.lixu.intentservice;

import android.app.IntentService;
import android.content.Intent;
import android.util.Log;

public class MyAppService extends IntentService{
    //构造方法要修改
    public MyAppService() {
        super("lixu");
    }

    @Override
    protected void onHandleIntent(Intent intent) {

        String str=intent.getStringExtra(Changliang.KEY);
        Log.e("MyAppService","内容"+ str);
        int content=0;
        final int A=content++;
        Log.e("MyAppService","线程"+ A+"开始执行");
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        Log.e("MyAppService", "线程"+ A+"结束");

    }

}
时间: 2024-10-17 22:00:34

IntentService的用法,对比Service它会按顺序执行,不会像Service一样并发执行。的相关文章

Android开发--IntentService的用法,你错过了什么

IntentService是Android中提供的后台服务类,我们在外部组件中通过Intent向IntentService发送请求命令,之后IntentService逐个执行命令队列里的命令,接收到首个命令时,IntentService就开始启动并开始一条后台线程执行首个命令,接着队列里的命令将会被顺序执行,最后执行完队列的所有命令后,服务也随即停止并被销毁. 与Service的不同 Service中的程序仍然运行于主线程中,而在IntentService中的程序运行在我们的异步后台线程中.在接

Ubuntu 16.04 LTS软件包管理基本操作使用APT简化命令行下面我们列出 Ubuntu 16.04 LTS 中使用 ATP 命令与老版本 Ubuntu 中软件包管理的用法对比: Ubuntu 16.04 LTS 老版本Ubuntu apt install 包名 替代 apt-get install 包名 apt remove 包名 替代 apt-get remove 包名 apt se

前文 Ubuntu 16.04 新特性中我们已经介绍过,随着 Ubuntu 16.04 LTS 的发布,Ubuntu 的软件包管理命令也发生了变化,新系统采用了 Debian 项目中所使用的 APT(Advanced Package Tool)来完成各种的不同的任务,ATP 命令全面取代了我们之前在 Linux 软件包管理基本操作入门中所介绍的 apt-get.apt-cache 等功能. ATP 在创建之初便是为了解决大量软件包管理所遇到的问题,希望结束类似 Linux 早期系统依赖的一大弊病

MFC基础--CString的Tokenize()和_tcstok()的用法对比

Tokenize()和_tcstok()都是用来分割字符串的方法.但是其各自的使用还是有很多不同. 下面对字符串“%s111gdfafd%s\t023232%s\t1%s\t2%s\t3%s\t4%s\t0XFF0000%s\tfdas”用这两个函数都进行一些相同匹配分割处理,代码和结果对比如下: Tokenize(): #include "stdafx.h" #pragma once #include <stdio.h> #include <tchar.h>

Matlab中的随即置乱函数randperm和randsample函数用法对比

Matlab中的randperm和randsample函数用法对比 转载:http://blog.sina.com.cn/s/blog_a4034b280101k4gg.html 构建替代数据的时候,一种常见的思路是打乱原数据的排列次序,通过随机置换原数据的排列次序从而产生和原数据系列统计特征(如均值.方差.分布)一致的随机数据.具体到Matlab中,此思路的实现会涉及到两个命令:randperm和randsample p.s. 相关的重新排序命令还包括: Reordering Algorith

Windows Azure Service Bus (6) 中继(Relay On) 使用VS2013开发Service Bus Relay On

<Windows Azure Platform 系列文章目录> 注意:本文介绍的是国内由世纪互联运维的Windows Azure服务. 项目文件请在这里下载. 我们在使用Azure平台的时候,经常会遇到本地应用和云端应用进行互通互连的情况. 在这种混合云的场景下,我们可以通过以下方式解决: 一.Point-To-Site VPN 将本地的一台设备(Point),与云端的网络(Site)进行互通互联. - 这里的Point指的就是企业内网的一台主机(VPN客户端) - 这里的Site是指Azur

javascript中call,apply,bind的用法对比分析

这篇文章主要给大家对比分析了javascript中call,apply,bind三个函数的用法,非常的详细,这里推荐给小伙伴们. 关于call,apply,bind这三个函数的用法,是学习javascript这门语言无法越过的知识点.下边我就来好好总结一下它们三者各自的用法,及常见的应用场景. 首先看call这个函数,可以理解成"借用“,"请求".想像一下如下的情景:你孤单一人漂泊在外,有急事想往家里打电话,可是很不巧,手机欠费了,或者没电了,或者掉坑里了,总之你的手机就是用

Linq表达式和Lambda表达式用法对比

什么是Linq表达式?什么是Lambda表达式?前一段时间用到这个只是,在网上也没找到比较简单明了的方法,今天就整理了一下相关知识,有空了再仔细研究研究 public Program() { List<Student> allStudent = new List<Student> { new Student("张三",23), new Student("李四",29), new Student("王二",25), new

[Python]range与xrange用法对比

[整理内容]具体如下: 先来看如下示例:>>>x=xrange(0,8)>>> print xxrange(8)>>>print x[0]0>>>print x[7]7>>>print x[8]Traceback (most recent call last):File "<stdin>", line 1, in <module>IndexError: xrange obj

js中回调函数,promise 以及 async/await 的对比用法 对比!!!

在编程项目中,我们常需要用到回调的做法来实现部分功能,那么在js中我们有哪些方法来实现回调的? 方法1:回调函数 首先要定义这个函数,然后才能利用回调函数来调用! login: function (fn) { var app = getApp() wx.login({ success: res => { let code = res.code; wx.getSetting({ success: res => { if (res.authSetting['scope.userInfo']) {