Android服务意外关闭
我有一个带有BroadcastReceiver的服务,它通过方法“exampleMethod()”与活动进行通信。这项服务启动并正常工作,但过了一段时间,它被Android停止,我必须重新启动它。是否可以确保服务不会长时间停止Android服务意外关闭,android,service,broadcastreceiver,Android,Service,Broadcastreceiver,我有一个带有BroadcastReceiver的服务,它通过方法“exampleMethod()”与活动进行通信。这项服务启动并正常工作,但过了一段时间,它被Android停止,我必须重新启动它。是否可以确保服务不会长时间停止 public class SMS_Service extends Service{ private BroadcastReceiver rec_sms = new BroadcastReceiver() { @Override
public class SMS_Service extends Service{
private BroadcastReceiver rec_sms = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
MainActivity.exampleMethod();
}
};
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// We want this service to continue running until it is explicitly
// stopped, so return sticky.
return START_STICKY;
}
一段时间后,服务被Android停止
第一件重要的事情是为什么你的服务会被android系统停止
当用户直接与该进程的某个组件(即活动)交互时,Android将非常努力地保持该进程运行,除非在特殊情况下,否则您不会看到它被杀死
- 如果是由于内存不足,则无法执行任何操作。当为内存杀死某些东西时,整个进程(包括应用程序对象)都会被杀死,此时不会在其中执行任何代码
- 如果服务只是因为不再需要运行而被销毁,那么将调用它的onDestroy(),当以后需要该服务时,将创建一个新实例并调用onCreate()