粘性Service
2015-09-19 19:52
197 查看
粘性Service就是一种服务 把他删去他又会马上创建 原理是在这个服务中去开启线程不断检测此服务是否存在如果不存在,咋就会重新创建
PushService.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
相关文章推荐
- 学习完Spring MVC体会
- android studio 打包jar
- Android View和ViewGroup
- 不使用库函数将整数转换为字符串或将字符串转换为整数
- Android View和ViewGroup
- JAVA程序的运行机制和JAVA虚拟机理解
- 苹果开发 笔记(78)键盘
- 【实践练习一】Git以及Github的使用
- JAVA中的 JSON 解析
- Linux常用命令
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
- 约瑟夫问题
- Laravel框架数据库CURD操作、连贯操作总结
- jQuery.Callbacks之demo
- JavaScript代码检查工具 — JSHint
- Android View和ViewGroup
- tomcat配置虚拟目录
- 条款35:考虑virtual函数以外的其他选择(Consider alternative to virtual functions)
- JSONP安全防范解决方案新思路
- dsoframer控件-jsp在线编辑offic文档