MainActivity:
package com.phone.day23_servicedemo;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
/**
* Service :******
* 服务像 Windows上面的服务一样,服务是在后台上运行,承担着静悄悄的不为人所注意的工作。
* Service运行在后台,它是不可见的、无界面的程序。
*
* 没有页面的进程 应用场景: 播放音乐,接收广播,下载图片 等等
*
* 概念总结:*****
* 1.Service在后台运行,不可以与用户直接交互
* 2.一个服务不是一个单独的进程
* 3.一个服务不是一个单独的线程。Service和其他组件一样,默认情况下,Service中的所有代码都是运行在主线程中 (可验证)
* 4。需要通过某一个Activity或其他Context对象来启动Service
*
* Service很大程度上充当了应用程序后台线程管理器的角色。(如果Activity中新开启一个线程,当该Acitivyt关闭后,该线程依然在工作,
* 但是与开启它的Activity失去联系。也就是说此时的这个线程处于失去管理的状态。但是使用Service,则可以对后台运行的线程有效地管理。)
*
* 为什么使用Service 而不使用 Thread*****
* 1、Service可以放在独立的进程中,所以更安全;
* 2、使用Service可以依赖现有的binder机制,不需要在应用层面上处理线程同步的繁杂工作 (BindService 的时候讲解)
* 3、系统可以重新启动异常死去的Service。
*
* 与Activity*****
* 1.不同点:Activity是与用户交互的组件,即可以看到UI界面,而Service是在后台运行、无需界面
* 2.相同点:使用Activity 时我们需要在配置文件中声明<activity>标签, 同样的使用Service
* 也需要在配置文件中声明<service>标签。都具有一定的生命周期。
*
* 分类:本地服务与远程服务:*****
* A:本地服务
* 一、本地服务通过启动方式分为两种:
* 1.启动服务Started Service *****
* 被启动的服务是由其它组件调用startService()方法而启动的,该方法会导致被启动服务的生命周期方法onStartCommand()被回调。
* 当服务是被启动状态后,其生命周期与启动它的组件无关,即使启动服务的组件(Activity,BroadcastRe