• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 安卓第十三天笔记-服务(Service),安卓第十三天

安卓第十三天笔记-服务(Service),安卓第十三天

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了安卓service,安卓service详解,安卓service的使用,安卓service生命周期,安卓中service等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

安卓第十三天笔记-服务(Service),安卓第十三天


安卓第十三天笔记-服务(Service)

Servcie服务

1.服务概念

服务

  • windows

服务没有界面,一直运行在后台, 运行在独立的一个进程里面

  • android

服务没有界面,一直运行在后台,默认是运行当前的应用程序进程里面。

2.建立服务

  • 建立一个类继承Service类

    public class ServiceDemo extends Service {
    
  • 在清单文件中注册service

    <service android:name="com.ithiema.servicequick.servcie.ServiceDemo"></service>

     

3.生命周期

只会在开启服务时初始化一次

    @Override
public void onCreate() {
    //只会在开启服务时初始化一次
    super.onCreate();
}

 

每次开启服务都会执行调用

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    //每次开启服务都会执行调用
    return super.onStartCommand(intent, flags, startId);
}

 

停止服务时,只执行一次

public void onDestroy() {
    //停止服务时,只执行一次
    super.onDestroy();
}

 

  • 完整生命周期

onCreate -- onStartCommand--onDestroy

  • 启动多次服务

onCreate方法只会执行一次, 但是onStartCommand执行多次

  • 多次停止服务

只会执行一次onDestroy方法。

4.进程

Foreground process

前台进程: 当前与用户进行交互的应用所处的进程

  • Visible process

可见进程: 应用程序不能交互,但是界面可见。 有点类似activity生命周期的onPause

  • Service process

服务进程: 应用程序里面运行着一个服务

  • Background process

后台进程: 应用程序被最小化了(home)

  • Empty process

空进程:应用程序里面没有任何活动的组件(activity \ service)

前台进程 > 可见进程 > 服务进程 > 后台进程 > 空进程

5.开启与停止服务

public void start(View v){
    startService(new Intent(this , ServiceDemo.class));
}


public void stop(View v){
    stopService(new Intent(this , ServiceDemo.class));
}

 

6.为什么要使用服务

场景: 1. 在后台检测设备接入状况 2. 在后台执行联网数据请求(类似股票软件) 3. 音乐播放器

7.绑定服务第一种

Extending the Binder class 第一种

1 先写一个继承Service类

2.在Service中写一个public类继承Binder,在这个类中写个方法返回具服务类的对象实例

3.在onBind 中返回 这个内部类的实例

4.在service中写几个public的方法提供给子类调用必须为public的

 /**
     * Created by  刘楠 on 2016-02-28 14:19.
     */
    public class LocalService extends Service {
        private static final String TAG = "LocalService";
        //声明绑定的类
        private LocalBinder mBinder = new LocalBinder();
        //给客户端使用
        private final Random mGenerator = new Random();

        /*
        第一种继承Binder类
         */
        public class LocalBinder extends Binder {

            public LocalService getServcie() {
                Log.d(TAG, "==getServcie==");
                return LocalService.this;
            }

        }

        @Nullable
        @Override
        public IBinder onBind(Intent intent) {
            Log.d(TAG, "==IBinder==");
            return mBinder;
        }

        @Override
        public void onCreate() {
            super.onCreate();
            Log.d(TAG, "==onCreate==");
        }


        @Override
        public int onStartCommand(Intent intent, int flags, int startId) {
            Log.d(TAG, "==onStartCommand==");
            return super.onStartCommand(intent, flags, startId);
        }

        /**
         * 返回一个随机数
         *
         * @return
         */
        public int getRandom() {
            Log.d(TAG, "==getRandom==");
            return mGenerator.nextInt(500);
        }


        @Override
        public boolean onUnbind(Intent intent) {
            Log.d(TAG, "==onUnbind==");
            return super.onUnbind(intent);
        }

        @Override
        public void onDestroy() {
            super.onDestroy();
            Log.d(TAG, "==onDestroy==");
        }
    }

 

5.在Manifest.xml中注册service

 <service android:name=".serivice.LocalService"/>

6.在客户端的Activity中绑定service bindService(intnet,ServiceConnection,Context.BINDAUTOCREATE)

7.写一个类实现ServiceConnection接口,在方法中完成获取Service类的实例

8.调用服务中的方法

9.解除绑定

布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:onClick="bind1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="绑定服务1"/>


    <TextView
        android:id="@+id/tv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <Button
        android:onClick="show"
        android:layout_width="match_parent"
   



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 安卓第十三天笔记-服务(Service),安卓第十三天

相关文章

  • 2017-05-26hideSoftInputFromWindow,模拟按钮点击事件
  • 2017-05-26用Android Studio 运行ndk 程序
  • 2017-05-26Kotlin操作符重载:把标准操作加入到任何类中(KAD 17),kotlinkad
  • 2017-05-26Android中AlarmManager使用示例(持续更新,已经更改),alarmmanager
  • 2017-05-26安卓第十八天笔记--简单动画,安卓第十八天--
  • 2017-05-26用原生VideoView进行全屏播放时的问题,videoview全屏播放
  • 2017-08-23Android下文件的压缩和解压(Zip格式)
  • 2017-05-26Android小项目:计算器
  • 2017-05-26手机APP创建桌面快捷方式,app创建快捷方式
  • 2017-05-26Android JSBridge的原理与实现

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android体系结构,android体系结构介绍
    • Android捕获崩溃异常,Android捕获崩溃
    • JAVA Web day01--- Android小白的第一天学习笔记,day01---android
    • 我的android学习经历2,android学习经历2
    • Android深入四大组件(四)广播的注册、发送和接收过程
    • Android之SharedPreferences数据存储,sharedpreferences
    • 27个漂亮的移动端注册/登录界面设计作品,27登录界面设计作品
    • JSON解析,json在线解析
    • Android 搜索 把软键盘上的回车键改为搜索
    • Android.mk模板(持续更新中),android.mk更新中

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有