1、本例实现了简单的Service(服务)的创建、启动和停止,点击“启动SERVICE”页面会显示“服务被创建”,接着是“服务被启动”。点击“停止SERVICE”页面提示“服务被停止”。太过基础,直接贴代码了……新手看看,老司机就忽略吧……

2、基本代码

ServiceDemo:

package thonlon.example.cn.servicedemo;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.support.annotation.Nullable;
import android.util.Log;
import android.widget.Toast;

/**
* 绑定服务的时候被调用
*/
public class ServiceDemo extends Service {
  @Nullable
  @Override
  public IBinder onBind(Intent intent) {
    return null;
  }

/**
* Service被创建后被调用
*/
  @Override
  public void onCreate() {
    Toast.makeText(ServiceDemo.this,"服务被创建",Toast.LENGTH_SHORT).show();
    Log.d("onCreate", "服务被创建");
  }

/**
* Service被开始后调用
*
* @param intent
* @param flags
* @param startId
* @return
*/
  @Override
  public int onStartCommand(Intent intent, int flags, int startId) {
    Toast.makeText(ServiceDemo.this,"服务被启动",Toast.LENGTH_SHORT).show();
    Log.d("onStartCommand", "服务被启动");
    return super.onStartCommand(intent, flags, startId);
  }

/**
* Service被停止后调用
*/
  @Override
  public void onDestroy() {
    Toast.makeText(ServiceDemo.this,"服务被停止",Toast.LENGTH_SHORT).show();
    Log.d("onDestroy", "服务被停止");
  }
}

MainActivity:

package thonlon.example.cn.servicedemo;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  }
  public void onClick(View v){
    Intent intent = new Intent();
    intent.setClass(this,ServiceDemo.class);
    switch (v.getId()){
      case R.id.btn_start_service://第一次点启动Service,服务会被创建,之后再点击启动服务不会再被创建,服务已经被创建
        startService(intent);
        break;
      case R.id.btn_stop_service:
        stopService(intent);
        break;
    }
  }
}

最新文章

  1. notepad++与vivado关联
  2. DEDECMS之四 栏目调用
  3. application/x-www-form-urlencoded等字符编码的解释说明
  4. Dev系列控件的AJAX (转)
  5. 《数据通信与网络》笔记--SSL/TLS
  6. Struts2 2.5.12的问题
  7. leetcode 283. Move Zeroes -easy
  8. Angular2入坑指南
  9. iOS中 UIMPMediaPickerController播放系统音乐
  10. .net基础学java系列(八)SpringBoot
  11. 我的 FPGA 学习历程(03)—— 使用 Quaruts 自带仿真工具
  12. 记录几个字符串转html的帮助类,已防忘记
  13. Vue --- :is
  14. LDAP概念和原理
  15. ionic之AngularJS——手势事件
  16. SSE图像算法优化系列八:自然饱和度(Vibrance)算法的模拟实现及其SSE优化(附源码,可作为SSE图像入门,Vibrance算法也可用于简单的肤色调整)。
  17. sublime text3怎么安装Package Control
  18. Spring的依赖注入的2种方式(1天时间)
  19. 创建smartfroms页格式
  20. 初学者必读原生AJAX-异步的javaScript和XML

热门文章

  1. poj 2942 Knights of the Round Table - Tarjan
  2. 装了as之后提示NO JVM installation found.....
  3. ant安装
  4. 打造性感好用的 VS Code 编辑器
  5. Linux/shell: remove adjacent similar patterns
  6. 对象扩展运算符(…)与rest运算符
  7. Machine.config与web.config
  8. java.lang.OutOfMemoryError:GC overhead limit exceeded
  9. spring注解预览
  10. js判断数字、整数、字符串、布尔,特殊方法