Android之Service[通俗易懂]

Android之Service

大家好,又见面了,我是全栈君。

 

Service是Android系统中的四大组件之中的一个,它与Activity不同,它是不能与用户交互的。

它是一种长生命周期的,没有可视化界面。执行于后台的一种服务程序。
        1.Android中的服务没实用户操作界面,它执行于系统中不easy被用户发觉,能够使用它开发如监控之类的程序。

服务的开发比較简单,例如以下:
                                  第一步:继承Service类
                                             public class MyService extends Service { }
                                  第二步:在AndroidManifest.xml文件里的<application>节点里对服务进行配置:
                                            <service android:name=”.MyService” />
服务不能自己执行。须要通过调用Context.startService()或Context.bindService()方法启动服务。这两个方法都能够启动Service
    2.Service与Activity一样,也有一个从启动到销毁的过程,但Service的这个过程比Activity简单得多。Service启动到销毁的过程仅仅会经历例如以下3个阶段: 
                              创建服务      public void onCreate();

                              開始服务      public void onStart(Intent intent, int startId); 

                              销毁服务       public void onDestroy();

 

 

MyService.java


package com.example.service;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;

public class MyService extends Service {

	@Override
	public IBinder onBind(Intent intent) {
		// TODO Auto-generated method stub
		return null;
		
	}

	@Override
	public void onCreate() {
		// TODO Auto-generated method stub
		System.out.println("###onCreate###");
	}

	@Override
	public void onDestroy() {
		// TODO Auto-generated method stub
		System.out.println("###onDestroy###");
	}

	@Override
	public int onStartCommand(Intent intent, int flags, int startId) {
		// TODO Auto-generated method stub
		System.out.println("###onStartCommand###");
		return Service.START_CONTINUATION_MASK;  //继续运行
	}

}

 

 

MainActivity.java


package com.example.service;

import android.os.Bundle;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;

import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
private Button start=null;
private Button stop=null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		start=(Button)findViewById(R.id.start);
		stop=(Button)findViewById(R.id.stop);
		this.start.setOnClickListener(new StartOnClickListenerImpl());
		this.stop.setOnClickListener(new StartOnClickListenerImpl());
	}
	private  class StartOnClickListenerImpl implements OnClickListener{

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			MainActivity.this.startService(new Intent(MainActivity.this,MyService.class));
		}

		private  class StoptOnClickListenerImpl implements OnClickListener{

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				MainActivity.this.startService(new Intent(MainActivity.this,MyService.class));
			}
			
		}
		
	}

}

注意不要忘了AndroidManifest.xml

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115488.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • ZOJ 2680 Clock()数学

    ZOJ 2680 Clock()数学

  • IntelliJ IDEA中的神仙插件(写代码必备)

    IntelliJ IDEA中的神仙插件(写代码必备)俗话说:"工欲善其事必先利其器",今天准备和大家一起分享一下实际工作中能提升幸福感和工作效率的IDEA插件。

  • 回文串「建议收藏」

    回文串「建议收藏」1.1.最长回文串LeetCode:给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如"Aa"不能当做一个回文字符串。注意:假设字符串的长度不会超过1010。回文串:“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。——百度百科地址:https://baike.baid…

    2022年10月22日
  • Java线程和进程区别

    Java线程和进程区别什么是进程,什么是线程?进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。线程:是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。一个程序至少一个进程,一个进程至少一个线程。进程线程的区别1、地址空间:同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间。2、…

  • linux抓包查看请求接口源ip,linux 抓包「建议收藏」

    linux抓包查看请求接口源ip,linux 抓包「建议收藏」tcpdumphost172.16.29.40andport4600-X-s500tcpdump采用命令行方式,它的命令格式为:tcpdump[-adeflnNOpqStvx][-c数量][-F文件名][-i网络接口][-r文件名][-ssnaplen][-T类型][-w文件名][表达式]1.tcpdump的选项介绍-a…

    2022年10月14日
  • 一窥直播技术新趋势「建议收藏」

    一窥直播技术新趋势「建议收藏」历经2016直播元年的爆发,直播App的虚火逐步降温,行业逐渐恢复理性,并不断探索新的产品形态与创新。这其中,技术扮演了不可或缺的角色,新的编码与传输协议,覆盖全球的网络架构,低延迟的音频传输与白板,基于深度学习的图像识别等,这一切进一步加强了各直播参与方的互动。基于Html5的直播技术,AR/VR,H.265编码普及,高清直播成本进一步降低,人工智能等技术又将让直播充满了更多想象。

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号