做了个流量记录的程序,但是这个姑娘没有实现,也不知道怎么做,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在被系统杀死后能够自动重启,以保持其后台任务的持续运行。 首先,我们要了解`onStartCommand()`方法。当Service启动时,系统会调用此方法,开发者可以在这个方法中处理Intent...
但是,对于被系统杀死的服务,系统可能不会自动重启。为了确保Service在这些情况下也能恢复,开发者可以实现onStartCommand()方法并返回START_STICKY或START_REDELIVER_INTENT。 - START_STICKY:服务被停止后,...
总之,“安卓后台保活服务service,自动重启APP”涉及到的关键技术包括服务的生命周期管理、前台服务、绑定服务、定时任务以及广播接收器的使用。开发者需要根据应用的需求和系统环境,灵活运用这些工具,确保服务的...
START_NOT_STICKY意味着服务被杀后不会自动重启,而START_STICKY_COMPATIBILITY是START_STICKY的兼容版本,但重启的保证性较低。 2. **在onDestroy中重启Service**: 当Service被销毁时,可以通过在onDestroy方法...
3. **进程重启**:对于含有Service的进程,在被系统或其他应用杀死后,Android系统会尝试自动重启该进程及其内部的服务。 #### 三、Service重启策略 1. **Service概述**:Service是Android四大组件之一,可以在...
- **START_NOT_STICKY**:服务被杀死后,系统不会自动重启。只有当再次调用`startService()`时,Service才会启动。 - **START_REDELIVER_INTENT**:与START_STICKY类似,但是当Service被重启时,会重新传递最后一...
3. **START_NOT_STICKY**:返回START_NOT_STICKY表示Service被杀死后,系统不会自动重启,除非有新的Intent启动Service。 4. **START_REDELIVER_INTENT**:返回START_REDELIVER_INTENT时,Service被杀死后,系统会...
当服务被杀死时,可以通过注册的广播接收器监听`ACTION_BOOT_COMPLETED`、`ACTION_MY_PACKAGE_REPLACED`等系统广播事件,然后在接收到这些事件时重新启动服务。 3. **前台服务**: 将服务设置为前台服务可以显著...
3. 启动Service和绑定Service结合:同时使用startService()和bindService(),这样即使Service被杀死,当绑定者再次请求连接时,Service会自动重启。 4. 使用前台Service:将Service声明为前台Service,显示一个通知...
针对这一问题,开发者常常需要采取一些策略来确保服务在被终止后能够自动重启,以保证其功能的连续性。本压缩包"安卓后台服务相关-android双进程监控保证服务杀死后重启.rar"就提供了这样的解决方案,探讨了如何通过...
但需要注意的是,这种方法并不总是可行,因为Android系统可能会杀死处于异常状态的应用,以保护系统的稳定性。 在实际应用中,除了异常捕获和自动重启,还应该注重预防异常的发生,比如进行充分的输入验证、使用...
同时,服务中应包含重启逻辑,当检测到自身进程被杀死时,能够自动启动另一个进程。 然后,我们引入双进程的概念。通常,我们会创建两个进程,一个主进程负责执行主要业务逻辑,另一个为守护进程,它的主要职责是...
当Service被系统意外终止时,系统会重新启动该服务并调用onStartCommand(),返回START_STICKY表示服务被杀死后,系统会自动重启并传递上次的intent。这是一种提高服务生存率的方法,但并不能保证在极度资源紧张时...
本资料包"安卓后台服务相关-Service意外被kill利用监听来重新启动.rar"探讨了如何在Service被kill后利用监听机制来实现服务的自动重启,以确保服务的持续运行。 一、Service的基本概念 1. Service是Android四大组件...
START_NOT_STICKY则是在服务被杀死且系统资源紧张时,不会自动重启服务。 创建一个Service需要继承Service类,并重写其关键方法,如onCreate()、onStartCommand()和onDestroy()。onCreate()在服务首次创建时调用,...
"android双进程守护"是一种策略,通过在两个不同的进程中启动服务,提高服务的生存能力,使其更难被系统自动杀死。 首先,了解Android服务(Service)的基本概念。Service是Android四大组件之一,用于在后台执行长...
7. **定时重启**:通过AlarmManager设置定时任务,在Service被意外终止后能自动重启。 8. **监听设备状态**:监听设备的唤醒锁、网络状态等,确保Service在必要时能够恢复运行。 ### 注意事项 虽然创建“不死”...
START_NOT_STICKY则是在服务被杀死且资源紧张时,不会自动重启服务。 在创建Service时,我们需要定义两个核心方法:onStartCommand()和onBind()。onStartCommand()用于接收startService()启动的服务请求,返回值...