zoukankan      html  css  js  c++  java
  • android 服务解析

      https://blog.csdn.net/luoyanglizi/article/details/51586437

    2、service和Thread的区别

    定义上:

    thread是程序运行的最小单元,可以用来执行异步操作

    service是android的一种机制,他是运行在android的主线程上,

    service是运行在主线程,所以它不能执行一些耗时操作,如果是要作耗时操作,就要在service里面创建子线程,再做耗时逻辑

    为什么不直接在activity里创建子线程进行耗时操作?

    因为activity很难对thread进行控制,而Service,对于activtity就很简单了

    启动service的两种方法:

    1、

    2、

     button.setOnClickListener(new View.OnClickListener(){
                @Override
                public void onClick(View v) {
                    Intent startIntent = new Intent(v.getContext(),MyService.class);
                    startService(startIntent);
                    
                }
            });

    用startService()方法来启动服务,活动里面可以用stopService(Intent)来停止服务

    服务自身可以用stopSelf()来停止

    public class MyService extends Service {
        @Nullable
        @Override
        public IBinder onBind(Intent intent) {
            return null;
        }
    
        @Override
        public void onCreate() {
            super.onCreate();
        }
    
        @Override
        public int onStartCommand(Intent intent, int flags, int startId) {
            return super.onStartCommand(intent, flags, startId);
        }
    
        @Override
        public void onDestroy() {
            super.onDestroy();
        }
    }

    第一次启动服务时 onCreate()和onStartCommand()会调用,之后只有onStartCommand()执行

    为了让活动知道服务做了什么,就要借助服务中的onBind()方法

    创一个类继承Binder类

  • 相关阅读:
    leetcode18
    CSS 1. 选择器
    HTML
    练习题|MySQL
    练习题||并发编程
    第八章| 3. MyAQL数据库|Navicat工具与pymysql模块 | 内置功能 | 索引原理
    mysql练习
    第八章| 2. MySQL数据库|数据操作| 权限管理
    第八章| 1. MySQL数据库|库操作|表操作
    第七章|7.4并发编程| I/O模型
  • 原文地址:https://www.cnblogs.com/zquan/p/9388163.html
Copyright © 2011-2022 走看看