zoukankan      html  css  js  c++  java
  • 防止服务被杀死的方法

    //注册Intent.ACTION_TIME_TICK过滤器的接收器,每分钟接收一次
    IntentFilter filter = new IntentFilter(Intent.ACTION_TIME_TICK);
    NoKillReceiver receiver = new NoKillReceiver();
    registerReceiver(receiver, filter);
    MainActivity.startActivity=this;

    //接收器代码,接收一次就判断需要打开的服务是否还在运行,如果已经被关闭折再次启动

    package com.caicai.receiver;
    
    import android.app.ActivityManager;
    import android.app.ActivityManager.RunningServiceInfo;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.util.Log;
    
    import com.caicai.service.PushService;
    
    public class NoKillReceiver extends BroadcastReceiver{
    
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(Intent.ACTION_TIME_TICK)) { 
                boolean isServiceRunning = false; 
                ActivityManager manager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); 
                for (RunningServiceInfo service :manager.getRunningServices(Integer.MAX_VALUE)) { 
                if("com.caicai.service.caiPushService".equals(service.service.getClassName())) { 
                isServiceRunning = true; 
                }   
                 } 
                Intent i = new Intent(context, PushService.class); 
                context.startService(i); 
                if (!isServiceRunning) { 
        
                }else{
                     Log.i("tt", "166666666666666666666666");
                } 
                } 
        }
    
    }

    //需要启动的服务

    package com.caicai.service;
    
    import android.app.Service;
    import android.content.Intent;
    import android.os.IBinder;
    import android.util.Log;
    
    public class PushService extends Service{
    
        @Override
        public IBinder onBind(Intent intent) {
            return null;
        }
         @Override
            public void onStart(Intent intent, int startId) {
             Log.i("tt", "15555555555555555555555555555555555555555555555555555");
            }
    }
  • 相关阅读:
    API短信平台的部分例子代码(转)
    将你的blog变成英文版
    如何构建安全的.net web应用系统
    利用ASP.NET AJAX实现表格更新程序
    asp.net Futures 之 Dynamic Data Control 的 学习总结
    Java修饰符public,private,protected及默认的区别
    Android之Handler用法总结
    Activity与Service通信(不同进程之间)
    Java关键字this、super使用总结
    Java之模板方法模式(Template Method)
  • 原文地址:https://www.cnblogs.com/clarence/p/3571072.html
Copyright © 2011-2022 走看看