粘性Service
2024-10-21 05:01:07
粘性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
最新文章
- quartz 数据表字典
- 【ZZ】Java : 一个帝国的诞生 &; 假如时光能够倒流, 我会这么学习Java
- 加载网络映射盘中的assembly失败的处理办法
- css3关键帧动画实现轮播效果
- javascript高性能写法
- 《代码大全(第二版)》【PDF】下载
- 按照不规则多边形shp文件分割底层栅格文件tif,统计不同栅格的属性值
- Spring Boot 构建电商基础秒杀项目 (十一) 秒杀
- webDriver文档阅读笔记
- req、js
- 【ARC063E】Integers on a tree
- x1c 6th usb-c 接口灯常亮,电源无法充电
- [AaronYang] 敏捷开发 教程目录
- xss绕过htmlspecialchars实体编码的姿势
- hive的实践部分
- Java--Jackson转换Date,Timestamp 到格式化字符串
- HttpClient发送get,post接口请求
- win7更改路由器wifi 密码
- HikariPool-1 - Connection is not available, request timed out after XXXXms.
- JAVA中所有与集合有关的实现类都是这六个接口的实现类