`
wen742538485
  • 浏览: 237680 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

如何让service被管理器杀死后自动重启

阅读更多
做了个流量记录的程序,但是这个姑娘没有实现,也不知道怎么做,START_STICKY等FLAG不知道怎么用?
求帮助,谢谢大家,service主要代码如下
        @Override
        public IBinder onBind(Intent arg0) {
                // TODO Auto-generated method stub
                Log.v("TrafficService", "Bind");       
                state = BINLD;
                //使用线程,该线程不会被销毁
                return myBinder;
        }
       
       
        class TrafficBinder extends Binder { 
                public float his = history;
                TrafficService getService(){
                        return TrafficService.this;
                 }
        }
       
         @Override
         public void onCreate() {
                 // TODO Auto-generated method stub
                 receiver = new NetReceiver();
                 IntentFilter nfilter=new IntentFilter();       
                 nfilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
                 this.registerReceiver(receiver, nfilter);
                 dealBuffer();
                 handler.post(createBrod);
                 Log.v("TrafficService", "Create "+history+" "+todayTraffic+" "+tempTraffic);
                 super.onCreate();
                
         }
         @Override
         public boolean onUnbind(Intent intent) {
                 // TODO Auto-generated method stub
                 state = UNBINLD;
                 Log.v("TrafficService", "Unbind");
                 return true;
         }
        
         @Override
         public void onRebind(Intent intent) {
                 // TODO Auto-generated method stub
                 Log.v("TrafficService", "Rebind");
                 state = BINLD;;
                 super.onRebind(intent);
                
         }
        
         @Override
        public void onDestroy() {
                // TODO Auto-generated method stub
                 handler.removeCallbacks(updateBrod);
                 momorybuffer();
                 nManger.cancel(R.layout.notifi);
                 unregisterReceiver(receiver);
                
                 Log.v("TrafficService", "destroy "+history+" "+todayTraffic+" "+tempTraffic);
                 super.onDestroy();
        }
        
        @Override
        public boolean stopService(Intent name) {
                // TODO Auto-generated method stub
                momorybuffer();
                nManger.cancel(R.layout.notifi);
                Log.v("TrafficService",name.getAction());
                Log.v("TrafficService", "stop "+history+" "+todayTraffic+" "+tempTraffic);
                return super.stopService(name);
        }

       
       
        @Override
        public int onStartCommand(Intent intent, int flags, int startId) {
                // TODO Auto-generated method stub
                Log.v("TrafficService","startCommand");
               
                flags =  START_STICKY;
                return super.onStartCommand(intent, flags, startId);
//                return  START_REDELIVER_INTENT;
        }
分享到:
评论

相关推荐

    Android Service 服务不被杀死的妙招

    本文将深入探讨如何使Android Service在被系统杀死后能够自动重启,以保持其后台任务的持续运行。 首先,我们要了解`onStartCommand()`方法。当Service启动时,系统会调用此方法,开发者可以在这个方法中处理Intent...

    Android中Service的手动、自动以及特殊条件下的重启

    但是,对于被系统杀死的服务,系统可能不会自动重启。为了确保Service在这些情况下也能恢复,开发者可以实现onStartCommand()方法并返回START_STICKY或START_REDELIVER_INTENT。 - START_STICKY:服务被停止后,...

    安卓后台保活服务service,自动重启APP

    总之,“安卓后台保活服务service,自动重启APP”涉及到的关键技术包括服务的生命周期管理、前台服务、绑定服务、定时任务以及广播接收器的使用。开发者需要根据应用的需求和系统环境,灵活运用这些工具,确保服务的...

    在安卓进程中怎样保证service不被杀死

    START_NOT_STICKY意味着服务被杀后不会自动重启,而START_STICKY_COMPATIBILITY是START_STICKY的兼容版本,但重启的保证性较低。 2. **在onDestroy中重启Service**: 当Service被销毁时,可以通过在onDestroy方法...

    android service 重启

    3. **进程重启**:对于含有Service的进程,在被系统或其他应用杀死后,Android系统会尝试自动重启该进程及其内部的服务。 #### 三、Service重启策略 1. **Service概述**:Service是Android四大组件之一,可以在...

    android如何保证service不被杀死.pdf

    - **START_NOT_STICKY**:服务被杀死后,系统不会自动重启。只有当再次调用`startService()`时,Service才会启动。 - **START_REDELIVER_INTENT**:与START_STICKY类似,但是当Service被重启时,会重新传递最后一...

    杀不死service

    3. **START_NOT_STICKY**:返回START_NOT_STICKY表示Service被杀死后,系统不会自动重启,除非有新的Intent启动Service。 4. **START_REDELIVER_INTENT**:返回START_REDELIVER_INTENT时,Service被杀死后,系统会...

    Android如何保证自己的服务被系统kill后又被系统重启?

    当服务被杀死时,可以通过注册的广播接收器监听`ACTION_BOOT_COMPLETED`、`ACTION_MY_PACKAGE_REPLACED`等系统广播事件,然后在接收到这些事件时重新启动服务。 3. **前台服务**: 将服务设置为前台服务可以显著...

    杀不死的service

    3. 启动Service和绑定Service结合:同时使用startService()和bindService(),这样即使Service被杀死,当绑定者再次请求连接时,Service会自动重启。 4. 使用前台Service:将Service声明为前台Service,显示一个通知...

    安卓后台服务相关-android双进程监控保证服务杀死后重启.rar

    针对这一问题,开发者常常需要采取一些策略来确保服务在被终止后能够自动重启,以保证其功能的连续性。本压缩包"安卓后台服务相关-android双进程监控保证服务杀死后重启.rar"就提供了这样的解决方案,探讨了如何通过...

    android demo,异常捕获或自动重启app的源代码实现。

    但需要注意的是,这种方法并不总是可行,因为Android系统可能会杀死处于异常状态的应用,以保护系统的稳定性。 在实际应用中,除了异常捕获和自动重启,还应该注重预防异常的发生,比如进行充分的输入验证、使用...

    Android双进程守护不会被杀死

    同时,服务中应包含重启逻辑,当检测到自身进程被杀死时,能够自动启动另一个进程。 然后,我们引入双进程的概念。通常,我们会创建两个进程,一个主进程负责执行主要业务逻辑,另一个为守护进程,它的主要职责是...

    Android 杀不死的服务的一种实现

    当Service被系统意外终止时,系统会重新启动该服务并调用onStartCommand(),返回START_STICKY表示服务被杀死后,系统会自动重启并传递上次的intent。这是一种提高服务生存率的方法,但并不能保证在极度资源紧张时...

    安卓后台服务相关-Service意外被kill利用监听来重新启动.rar

    本资料包"安卓后台服务相关-Service意外被kill利用监听来重新启动.rar"探讨了如何在Service被kill后利用监听机制来实现服务的自动重启,以确保服务的持续运行。 一、Service的基本概念 1. Service是Android四大组件...

    service的使用小demo

    START_NOT_STICKY则是在服务被杀死且系统资源紧张时,不会自动重启服务。 创建一个Service需要继承Service类,并重写其关键方法,如onCreate()、onStartCommand()和onDestroy()。onCreate()在服务首次创建时调用,...

    android双进程守护,很难被杀死

    "android双进程守护"是一种策略,通过在两个不同的进程中启动服务,提高服务的生存能力,使其更难被系统自动杀死。 首先,了解Android服务(Service)的基本概念。Service是Android四大组件之一,用于在后台执行长...

    不死的Service

    7. **定时重启**:通过AlarmManager设置定时任务,在Service被意外终止后能自动重启。 8. **监听设备状态**:监听设备的唤醒锁、网络状态等,确保Service在必要时能够恢复运行。 ### 注意事项 虽然创建“不死”...

    Service使用demo(Eclipse)

    START_NOT_STICKY则是在服务被杀死且资源紧张时,不会自动重启服务。 在创建Service时,我们需要定义两个核心方法:onStartCommand()和onBind()。onStartCommand()用于接收startService()启动的服务请求,返回值...

Global site tag (gtag.js) - Google Analytics