iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android开发入门之Service用法分析
  • 867
分享到

Android开发入门之Service用法分析

serviceandroid开发Android 2022-06-06 08:06:42 867人浏览 薄情痞子
摘要

本文实例讲述了Android中Service用法。分享给大家供大家参考,具体如下: 关于Service的讲解网上已经很多了,这里是关于自己通过写代码Service的一点体会 还

本文实例讲述了Android中Service用法。分享给大家供大家参考,具体如下:

关于Service的讲解网上已经很多了,这里是关于自己通过写代码Service的一点体会 还有结合其他人对Service的一点总结

Service可以理解为一个隐形的Activity 但它又与Activity有些不同,首先Service是没界面,用户看不到 可交互的组件 级别是与Activity是差不多的

Service中定义了一系列和自身声明周期相关的方法:

onBind(...)是必须实现的方法,返回一个绑定接口给Service
onCreate(); 当Service第一次被创建时 由系统调用
onStart(...)当通过startService()方法调用启动Service时被调用
onDestroy();当Service不再使用,系统调用该方法....

本次代码分别有MainActivity,Java,MyService.java main.xml这几个重要文件 下面通过这几个文件对Service进行理解 见注释

老规矩 先开始布局 挺简单的 就是几个Button


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="Http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >
<TextView
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="Service测试"
 android:gravity="center_horizontal"
 />
<Button
 android:id="@+id/startButton"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="Start Service"
/>
<Button
 android:id="@+id/stopButton"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="Stop Service"
/>
<Button
 android:id="@+id/bindButton"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="Bind Service"
/>
<Button
 android:id="@+id/unBindButton"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="Unbind Service"
/>
</LinearLayout>

布局效果图:

开始服务文件, MyService继承Service


public class MyService extends Service
{
 final static String TAG = "MyService";
 @Override
 public IBinder onBind(Intent intent)
 {
  Log.i(TAG,"OnBind()......");
  showInfo("Onbind()......");
  return null;
 }
 // Setvice创建时被调用
 @Override
 public void onCreate()
 {
  Log.i(TAG,"onCreate()......");
   showInfo("onCreate()......");
  super.onCreate();
 }
 //当客户调用startService()启动Service时被调用
 @Override
 public void onStart(Intent intent, int startId)
 {
  Log.i(TAG,"onStart()........");
  showInfo("onStart()........");
  super.onStart(intent, startId);
 }
 @Override
 public void onDestroy()
 {
  Log.i(TAG,"onDestroy()........");
  showInfo("onDestroy()........");
  super.onDestroy();
 }
 @Override
 public boolean onUnbind(Intent intent)
 {
  Log.i(TAG,"onUnbind()........");
  showInfo("onUnbind()........");
  return super.onUnbind(intent);
 }
 public void showInfo(String str)
 {
  Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
 }
}

上面主要是Service中几个周期函数 这个MyService代表一个服务,当然在这里面我们在里面加什么实质性的东西,例如可以在

Onstart(...)函数里创建一个音乐播放器MediaPlayer 当服务被启动时播放音乐.....

你创建了Service  就跟你创建Activity一样 必须在Manifest里注册 下面开始注册


<!-- 增加的Service -->
<service android:name=".MyService">
<intent-filter >
 <action android:name="com.study.android.action.MY_SERVICE"/>
</intent-filter>
</service>

服务就这样 注册成功。光注册成功还没有完成任务哦......  还有启动服务,停止服务,绑定服务,解除绑定的服务


package com.study.android;
import android.app.Activity;
import android.app.Service;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
 final static String ACTION = "com.study.android.action.MY_SERVICE";
 private Button startButton,stopButton;
 private Button bindButton,unbindButton;
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  startButton = (Button)findViewById(R.id.startButton);
  stopButton = (Button)findViewById(R.id.stopButton);
  bindButton = (Button)findViewById(R.id.bindButton);
  unbindButton = (Button)findViewById(R.id.unBindButton);
  // 开启服务
  startButton.setOnClickListener(new OnClickListener()
 {
  @Override
  public void onClick(View v)
  {
   // 启动服务
   startService(buildIntent());
  }
 });
  //startButton按下后 周期函数执行顺序 onCreate()----->onStart()
  
  // 停止服务
  stopButton.setOnClickListener(new OnClickListener()
 {
  @Override
  public void onClick(View v)
  {
   stopService(buildIntent());
  }
 });
  //stopButton按下后 周期函数执行顺序 onDestroy()
   
  // 绑定服务
  bindButton.setOnClickListener(new OnClickListener()
 {
  @Override
  public void onClick(View v)
  {
   bindService(buildIntent(),conn,Service.BIND_AUTO_CREATE);
   
  }
 });
  // bindButton 被按下后(当前服务已经stop掉)周期函数执行顺序 onCreate()------->onBind()
   
  // 接触绑定Service
  unbindButton.setOnClickListener(new OnClickListener()
 {
  @Override
  public void onClick(View v)
  {
   unbindService(conn);
  }
 });
  //unbindButton按下后 周期函数执行顺序onUnbind()------->onDestroy()
 }
 // 连接对象
 private ServiceConnection conn = new ServiceConnection()
 {
 @Override
 public void onServiceConnected(ComponentName name, IBinder service)
 {
   Log.i("SERVICE","连接服务成功!");
   showInfo("连接服务成功!");
 }
 @Override
 public void onServiceDisconnected(ComponentName name)
 {
  Log.i("SERVICE","服务连接断开!");
  showInfo("服务连接断开!");
 }
 };
 public Intent buildIntent()
 {
  Intent intent = new Intent();
  // 设置Intent属性 注意:这里action属性要与Manifest里服务对应
  intent.setAction(ACTION);
  return intent;
 }
 public void showInfo(String str)
 {
   Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
 }
}

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android Service组件使用技巧总结》、《Android编程之activity操作技巧总结》、《Android资源操作技巧汇总》、《Android文件操作技巧汇总》、《Android操作sqlite数据库技巧总结》、《Android操作JSON格式数据技巧总结》、《Android数据库操作技巧总结》、《Android开发入门与进阶教程》、《Android视图View技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

您可能感兴趣的文章:Android Service服务详细介绍及使用总结Android Service绑定过程完整分析Android Service总结及详细介绍Android Service中方法使用详细介绍Android中Service的全面总结浅谈Android中Service的注册方式及使用


--结束END--

本文标题: Android开发入门之Service用法分析

本文链接: https://www.lsjlt.com/news/24723.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android入门之Service的使用详解
    目录简介什么是ServiceService的生命周期startService和bindService的区别startService ()时Service的生命周期bindServic...
    99+
    2022-12-08
    Android Service使用 Android Service
  • Android开发入门教程
    当涉及到 Android 开发入门教程时,以下是一个详细的大纲,包含了一些常见的实践和指导: Android 概述    - 介绍 Android 平台的基本概念和特点    - 解释 Android 应用的组成和架构    - 说明 A...
    99+
    2023-09-02
    android
  • PHPWeb开发入门的示例分析
    小编给大家分享一下PHPWeb开发入门的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!PHPWeb开发入门体验学习笔记4...
    99+
    2024-04-02
  • 微信小程序开发之入门的示例分析
    这篇文章给大家分享的是有关微信小程序开发之入门的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、注册小程序账号1、进入微信公众平台(https://mp.weixin....
    99+
    2024-04-02
  • Android开发之拖动条和评分组件用法分析
    本文实例讲述了Android开发之拖动条和评分组件用法。分享给大家供大家参考,具体如下:今天闲着没事做就拿出了Android书接着学习,android就是组件多有时候还会弄混淆了。这次介绍的是拖动条和评分组件,这2个组件也是超级简单的下面就...
    99+
    2023-05-30
    android 拖动条 评分组件
  • 深入分析Android NFC技术 android nfc开发
    从概念,实现原理以及最红实现的源码等有助于大家对NFC技术有更深入的理解。NFC 是 Near Field Communication 缩写,即近距离无线通讯技术。可以在移动设备、消费类电子产品、PC 和智能控件工具间进行近距离无线通信。简...
    99+
    2023-05-30
  • Android入门之bindService的用法详解
    目录介绍来看例子全代码Service注册Service类(坑来了)主运行类-MainActivity.java运行效果介绍 在前一天我们介绍了Android中有两种启动Service...
    99+
    2022-12-08
    Android bindService用法 Android bindService
  • 敲开 Python 数据分析之门:新手入门指南
    先决条件 计算机基础知识 基本编程概念(例如变量、数据类型和条件语句) 安装 Python 和必要的库(例如 Pandas、NumPy 和 Matplotlib) 步骤 1:数据导入和探索 使用 Pandas 库读取 CSV、Exc...
    99+
    2024-03-14
    数据分析
  • Android开发之音视频协议分析
    这篇文章主要介绍“Android开发之音视频协议分析”,在日常操作中,相信很多人在Android开发之音视频协议分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android开发之音视频协议分析”的疑惑有所...
    99+
    2023-06-30
  • Android Studio开发之JNI的示例分析
    这篇文章主要介绍了Android Studio开发之JNI的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言Android上层应用使用java开发,不过java并不...
    99+
    2023-05-30
    android studio jni
  • 安卓Android开发快速入门
    配合天哥视频食用更佳:【天哥】Android开发视频教程最新版 Android Studio开发 UI组件(控件) 布局管理器 LinearLayout(线性布局) 可嵌套 最常用属性 id 起标记布局的作用 layout_width [w...
    99+
    2023-08-19
    java
  • 微信小程序入门开发实例分析
    这篇“微信小程序入门开发实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序入门开发实例分析”文章吧。注册微信小...
    99+
    2023-06-30
  • Python入门之基础语法的示例分析
    这篇文章将为大家详细讲解有关Python入门之基础语法的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python有哪些常用库python常用的库:1.requesuts;2.scrapy;3.p...
    99+
    2023-06-15
  • Android Camera开发入门(4):USB/UVC Camera的使用
    Android Camera开发入门(4):USB/UVC Camera的使用 本文基于开源项目https://github.com/saki4510t/UVCCamera之上进行二次封装和使用 ...
    99+
    2023-09-28
    android UVC Camera USB Camera USB相机 音视频
  • Python入门之使用pandas分析excel数据
    目录1.问题2.方案2.1.安装2.2.读写文件2.3.数据操作2.4.数据筛选2.5.数据写入2.6.数据删除3.讨论 总结1.问题 在python中,读写excel数据方法很多,...
    99+
    2024-04-02
  • ASP入门宝典:开启Web开发之门的钥匙
    简介 ASP(Active Server Pages)是一项强大的Web开发技术,由微软开发,用于构建动态Web应用程序。它基于服务器端脚本,允许开发者创建交互式且响应式网页。以下指南将为您提供ASP入门所需的全面概述。 基础知识 H...
    99+
    2024-03-14
    ASP基础
  • 分析uniapp入门之nvue爬坑记
    目录前言Hello Worldimage 设置 border-radius设置真实像素引入外部的 css使用 ttf 字体文件vue 打开 nvue 时传递参数仿微信朋友圈效果前言 ...
    99+
    2024-04-02
  • Android开发入门——从零开始构建第一个Android App
    作者:禅与计算机程序设计艺术 1.简介 首先,让我们回顾一下Android系统的特性。Android是一个开源、免费的移动操作系统,最初起源于Google,后被开源。它提供统一的API,使得手机厂商...
    99+
    2023-10-06
    自然语言处理 人工智能 语言模型 编程实践 开发语言 架构设计
  • Android入门之Fragment嵌套Fragment的用法详解
    目录从现实需求来看场景Fragment的嵌套fg_content.xmlpet_the_cat.xmlfg_content layout所属的Fragment Java端代码从现实需...
    99+
    2023-02-06
    Android Fragment嵌套Fragment Android Fragment嵌套 Android Fragment
  • Android开发Retrofit源码分析
    目录项目结构retrofit 使用Retrofit #createServiceMethod #parseAnnotationsHttpServiceMethod#parseAnno...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作