如果机器人重新启动某个服务的onCreate再次叫什么名字?(If android restarts

2019-06-24 14:22发布

从我的小机器人知识,我明白,Android操作系统能在极端的内存条件下杀死我的服务。

我创建了返回服务START_STICKY 。 该服务是为了在后台运行。

如果Android是要杀死我的服务,它会调用onDestroy

而在重新启动时它会调用它onCreate

Answer 1:

看到这里,开发者指南。 http://developer.android.com/reference/android/app/Service.html#ProcessLifecycle

onCreate()当过程开始时,它可以在第一时间服务正在运行,或者如果它是在重新启动被杀,基本上只要启动这个被称为只叫。

onStartCommand()每当客户端调用被称为startService()

当服务被破坏/完全停止,Android是应该调用onDestroy()上的服务。 我认为这是可能的,为了不发生(例如,过程不是通过Android系统杀死)。 在一个绑定的服务的情况下,这是当没有更多活跃的客户端粘合剂。

编辑: onCreate()服务启动; onStartCommand()有人使用服务; onDestroy()服务被杀害/停止。



Answer 2:

如果有人致电Context.startService(),则系统将检索服务(创建它,如果需要调用它的onCreate()方法),然后调用其onStartCommand(意向,INT,INT)方法与客户端提供的参数

...

服务可以同时起步,并没有绑定到它的连接。 在这种情况下,系统将保留该服务,只要它要么启动或有一个或多个连接到它与Context.BIND_AUTO_CREATE标志运行。 一旦没有这些情况下持有,该服务的的onDestroy()方法被调用,服务也有效地终止。 所有清理(停止线程,注销接收器)应该是完整的从后返回的onDestroy()。

http://developer.android.com/reference/android/app/Service.html

编辑:快速的答案。 有两个问题



文章来源: If android restarts a Service is onCreate called again?