粘性Service就是一种服务 把他删去他又会马上创建 原理是在这个服务中去开启线程不断检测此服务是否存在如果不存在,咋就会重新创建

 import android.app.Activity;
import android.content.Intent;
import android.os.Bundle; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); startService(new Intent(getApplicationContext(),PushService.class));
} }

MainActivity.java

 import java.util.List;

 import android.app.ActivityManager;
import android.app.ActivityManager.RunningServiceInfo;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder; public class PushService extends Service { @Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate(); new SeekServiceThread().start();
} @Override
public int onStartCommand(Intent intent, int flags, int startId) {
return Service.START_STICKY;//绮樻�Service鏍囪瘑锛屽綋Service缁勪欢鍦ㄩ潪鎰忔効鏃惰鍋滄鍚庯紝鏈夋満鐜囬噸鍚�
} @Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
} //鏌ユ壘褰撳墠缁勪欢鐨勭嚎绋嬶紝濡傛灉褰撳墠姝h繍琛岀殑鏈嶅姟缁勪欢涓嶅寘鍚玃ushService缁勪欢鏃讹紝鍒欏惎鍔�
class SeekServiceThread extends Thread{ @Override
public void run() { while(true){ //1.鑾峰彇Activity缁勪欢绠$悊鍣紙绠$悊褰撳墠搴旂敤鐨勮繘绋嬨�鏈嶅姟缁勪欢銆佷换鍔℃垨鍥為�鏍堬級
ActivityManager mgr=(ActivityManager) getSystemService(ACTIVITY_SERVICE); //2. 鑾峰彇姝h繍琛岀殑鏈嶅姟缁勪欢
List<RunningServiceInfo> rServices = mgr.getRunningServices(100); boolean isFinded=false;//鏍囪瘑鏄惁鏌ユ壘鍒板綋鍓嶇殑service缁勪欢
for(RunningServiceInfo rService:rServices){
if(rService.getClass().getName().equals(PushService.class.getName())){
isFinded=true;
}
} if(!isFinded){ //濡傛灉娌℃湁鏌ユ壘鍒帮紝鍒欏惎鍔ㄦ湰鏈嶅姟缁勪欢 startService(new Intent(getApplicationContext(),PushService.class));
} try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
} }
} }

PushService.java

粘性Service的更多相关文章

  1. android service笔记

    1.service 默认在主线程运行,所以不能在service中直接做访问网络,操作文件等耗时操作,要另外开启线程 2.通过startservice开启的服务,一旦服务开启,这个服务和开启他的调用者之 ...

  2. Service启动模式

    Service简单介绍        Service表示服务.是Android系统的核心组件之中的一个. Service的本质是一个继承了android.app.Service的java类:     ...

  3. (七)Kubernetes Service资源

    Service概述 为什么要使用Service Kubernetes Pod是平凡的,由Deployment等控制器管理的Pod对象都是有生命周期的,它们会被创建,也会意外挂掉.虽然它们可以由控制器自 ...

  4. Android_Service组件详解

    1.Service概述 Service服务是一个没有用户界面的在后台运行执行操作的应用组件,其它组件可以通过Intent意图启动这个Service去完成特定的功能,比如通过Service可以完成播放音 ...

  5. android教学大纲

    android班 教学大纲 个小时 次课:Android开发环境搭建及工具介绍 Android系统简介 Android开发环境简介及搭建 AndroidStudio提供的工具组件 次课:第一个Andr ...

  6. 23 服务的创建Demo1

    结构 MainActivity.java package com.qf.day23_service_demo1; import android.app.Activity; import android ...

  7. Android从启动到程序运行整个过程的整理

    1Android是基于Linux的一个操作系统,它可以分为五层,下面是它的层次架构图,可以记一下,因为后面应该会总结到SystemServer这些Application Framework层的东西 A ...

  8. k8sService资源

    一.service资源及其实现模型 通过规则定义出由多个pod对象组合而成的逻辑集合,以及访问这组pod的策略.service关联pod资源的规则要借助于标签选择器来完成 1.service资源概述 ...

  9. Service是什么?Service又不是什么?

    在Android王国中,Service是一个劳动模范,总是默默的在后台运行,无怨无悔,且总是干最脏最累的活,比如下载文件,倾听音乐,网络操作等这些耗时的操作,所以我们请尊重的叫他一声:"劳模 ...

随机推荐

  1. C++并发编成 03 线程同步

    这一节主要讲讲线程同步的方式,C++ 11中提供了丰富的线程同步元语,如condition_variable,futrue,std::packaged_task<>,std::promis ...

  2. 显示器如何显示一个YUV422格式的图形

    记录在开发过程中对知识点的一些理解: 在开发渲染程序的过程中,需要对视屏文件进行解码解码后特效文件的叠加,使用的技术是(FFmpeg+DirectX) 解码出来的视屏数据格式是YUYV,使用Direc ...

  3. Hive基础之Hive表常用操作

    本案例使用的数据均来源于Oracle自带的emp和dept表 创建表 语法: CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name ...

  4. ETL编程模型(场景)

    使用场景: ETL是一个处理过程. 多个数据源之间进行数据同步 1:n:一对多同步数据 n:1:多个数据源到一个目的段 m;n:多个数据源多个目的段 ========================= ...

  5. 给iOS开发新手送点福利,简述UIScrollView的属性和用法

    UIScrollView 1.   contentOffset 默认CGPointZero,用来设置scrollView的滚动偏移量. // 设置scrollView的滚动偏移量 scrollView ...

  6. GO ‘N’ Times,SQL执行同一个语句多次

    GO (Transact-SQL)   语法   GO [count] 参数 count 为一个正整数. GO 之前的批处理将执行指定的次数.   源文档 <http://msdn.micros ...

  7. python面向对象重新梳理

    关于本篇博文: 面向对象中所有的内容的重新梳理,其实面向对象的知识早在一个多月前就学习过并整理过,但是发现还是有所欠缺,故在此以极其简介的语言风格重新梳理一遍 面向对象详细介绍:http://www. ...

  8. (18/24) webpack实战技巧:快速入门webpack模块化配置

    搞个小例子便于学习: 具体操作为把上节中的webpack.config.js中的entry入口文件进行模块化设置,单独拿出来制作成一个模块. 1.在根目录新建一个config文件,然后新建webpac ...

  9. JPQL和SQL的比较

    前言 在JAVA EE中,JPQL是专门为Java 应用程序访问和导航实体实例设计的.Java Presistence Query Language(JPQL),java持久性查询语言.它是JPA规范 ...

  10. SpringMvc 获取ApplicationContext

    有时,我们不通过Controller层进入Service层,比如同步数据,任务,以及文件上传共通Handler对文件处理后保存数据等都会由一个非Controller类调用Service. 这时候如果n ...