安卓Service详解(二)
来源:互联网 发布:中世纪2优化9血统玩法 编辑:程序博客网 时间:2024/05/22 13:57
Android中Services之异步IntentService
1.IntentService:异步处理服务
1.内部有一个工作线程来完成耗时操作,只需要实现onHandleIntent()方法即可 2.IntentService完成工作后会自动停止服务,同时执行多个任务会以工作队列形式,依次执行 3.不需要主动调用stopSelft()来结束服务。因为,在所有的intent被处理完后,系统会自动关闭服务。 4.通常使用该类完成app中的耗时工作 5. 默认实现的onBind()返回null
2.继承IntentService的类至少要实现两个函数:
构造函数和onHandleIntent()函数
3.下面来看一下源码
1>写一个类继承自IntentService
在里面实现onHandlerIntent()方法,打印输出ipublic class MyIntentService extends IntentService { public MyIntentService() { //构造方法,需要取一个名字 super("MyIntentService"); } @Override protected void onHandleIntent(Intent intent) { Log.e("TAG", "传递的数据 ====== "+intent.getStringExtra("msg")); for (int i = 0; i < 3; i++) { System.out.println("onHandleIntent"+i+Thread.currentThread().getName()); } } @Override public void onDestroy() { super.onDestroy(); Log.e("TAG", "MyIntentServiceDestory!!"); }}
2>然后是MainActivity
主要用来启动Service,传递数值public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void startIntentService(View view) { Intent intent = new Intent(this,MyIntentService.class); intent.putExtra("msg","哈哈哈哈哈哈MyIntentService"); startService(intent); }}
xml布局文件就不发了,只用一个按钮
然后点击开启服务按钮,可以发现,LogCat打印的Log,Service在打印完成后,自动执行onDestroy()销毁E/TAG: 传递的数据 ====== 哈哈哈哈哈哈MyIntentServiceI/System.out: onHandleIntent0IntentService[MyIntentService]I/System.out: onHandleIntent1IntentService[MyIntentService]I/System.out: onHandleIntent2IntentService[MyIntentService]E/TAG: MyIntentServiceDestory!!
阅读全文
0 0
- 安卓Service详解(二)
- 安卓服务Service详解
- 3.安卓service详解
- 安卓服务Service详解
- 安卓核心组件二service
- 安卓之service常用用法详解
- 安卓之Service详解(一)
- 我的安卓记录二(service)
- 安卓集成发布详解(二)
- Service详解(二)
- 安卓四大组件之——Service详解
- 安卓 Service组件
- 关于安卓service
- 安卓Service服务
- 安卓016Service
- 安卓service 基础
- 安卓service
- 安卓 service
- 1.1介绍线程和运行(Introducing Thread and Runnable)
- Zxing二维码扫描的三个类(可自定义扫描框)
- 递归删除指定文件夹
- druid集群的安装和验证
- vue.js
- 安卓Service详解(二)
- 使用JSP/Servlet技术开发新闻发布系统
- angular2路由
- scala的apply
- 1022: 三整数排序
- 1069. 微博转发抽奖(20)
- 多线程的start和run
- 尚学堂马士兵JAVA集视频教程(J2EE)
- 等差数列(难度:半颗星)