我做了一个远程服务,这个服务是在我第一次启动时通过我的活动启动的,之后,如果服务启动,活动总是会看起来避免再次启动它。服务在onTaskRemoved后重新创建
该服务在onCreate函数中运行一些方法。此服务始终运行,并在启动时启动。
问题(不是一个大问题,但我想知道为什么)是,如果我停止我的活动创建服务,onTaskRemoved被调用,这是正确的,但几秒钟后,再次调用oncreate方法并且服务再次开始。
任何想法为什么?我怎样才能控制这个?
<service
android:name=".Service"
android:icon="@drawable/ic_launcher"
android:label="@string/service_name"
android:process=":update_process" >
</service>
AndroidManifest.xml中
if (!isRunning()) {
Intent service = new Intent(this, UpdateService.class);
startService(service);
} else {
//Just to debug, comment it later
Toast.makeText(this, "Service was running", Toast.LENGTH_SHORT).show();
}
当如果它没有运行
我不清楚你的问题。但不要担心服务的多个实例。从第二次调用['startService()'](http://developer.android.com/reference/android/content/Context.html#startService(android.content.Intent))不会启动服务两次,如果它已经在运行。 – 2013-02-08 11:55:47
@LaiVung多重实例不是问题,问题在于活动停止后调用oncreate的方法,所以onCreate内部的方法再次被调用,我不想要。 – Marcel 2013-02-08 12:02:53
你是否在你的活动结束时开始了一些事情(比如'onDestroy()')? – 2013-02-08 12:20:12