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类

  • 相关阅读:
    MT【235】两道函数题
    MT【234】正方形染色(二)
    MT【233】染色正方形
    MT【232】展开式中的系数
    MT【231】棋子方法数
    MT【230】一道代数不等式
    MT【229】最小值函数
    MT【228】整数解的个数
    Python-list中的排序
    IO多路复用
  • 原文地址:https://www.cnblogs.com/zquan/p/9388163.html
Copyright © 2011-2022 走看看