Android核心组件Service 详解

  次阅读 作者:智能小宝 来源:互联网 2016-01-19 11:13 我要评论(0)

在Android框架中,Service是比较难以理解的一部分,而网上的大多数资料最多就是讲述了如何去用Service,并没有对Service做一 个深入的、系统的讲解。现在傻蛋将做一个系列文章,将对Service做一个由浅入深的梳理,帮助大家深入的掌握Android Service。

首先我们先来看看怎么使用Service,然后再谈Android Service的内部机制。

在Android中Service的启动方式有两种,今天先发第一种。

Service的启动方式一:

启动:Context.startService(new Intent(context,xxx.class));

停止:Context.stopService() ;

我画了一个Service启动的流程图,相信大家一看就懂。Activity通过 Intent启动Service,如果Service还没有运 行,则android先调用onCreate()然后调用onStart();如果 Service已经运行,则只调用onStart(),所以一个 Service的onStart方法可能会重复调用多次。 调用stopService就会触发Service的onDestroy()方法。

这一节里面傻蛋做了一个示例程序是一个音乐播放器,界面如下,功能很简单:播放、暂停、停止音乐、关闭Activity(这时Service仍然运 行,继续播放音乐)、退出程序(停止音乐退出Activity)。

由于要控制Service的动作,傻蛋写了一个播放的通用类,这样在以后的课程中还能用上,代码如下:

/**

* MyMediaController.java

* com.androidtest.service.mediaplayer

*

* Function: TODO

*

*verdateauthor

* ──────────────────────────────────

*2011-5-16Leon

*

* Copyright (c) 2011, 最牛网 All Rights Reserved.

*/

package com.zuiniuwang;

import java.io.Serializable;

import android.media.MediaPlayer;

/**

* ClassName:MyMediaController

* Function: Mediaplayer 的一个控制类,控制播放器的播放 暂停 停止 等动作

* REASON

*

* @author Leon

* @version

* @since Ver 1.1

* @Date 2011-5-16

*/

public enum MyMediaController implements Serializable {

play {

@Override

public void execute() {

if (mediaPlayer != null && !mediaPlayer.isPlaying())

mediaPlayer.start();

// TODO Auto-generated method stub

}

},

pause {

@Override

public void execute() {

// TODO Auto-generated method stub

if (mediaPlayer != null && mediaPlayer.isPlaying()) {

mediaPlayer.pause();

}

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...