为什么我的服务在运行时调用onCreate()本身?

问题描述:

我在我的android应用程序中有一个服务,它只在退出应用程序时停止。为什么我的服务在运行时调用onCreate()本身?

public class MyService extends Service { 

    public MyService() { 
    } 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     try { 
      if(intent != null){ 
       //...... 
      } 
     } catch (Throwable e) { 
     } 
     return START_STICKY; 
    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
    } 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     //...... 
    } 

    @Override 
    public IBinder onBind(Intent intent) { 
     return null; 
    } 


} 

这种服务有时会调用其onCreate()方法本身,而running.When检查正在运行的服务的状态,但它的功能不干活。我坚持这个对于很多hours.What这里的问题?我在这个服务上尝试了LowMemory(),但是没有结果。

如果您在onStartCommand()中返回START_STICKY,那么如果服务被系统杀死(可能是在内存不足的情况下),服务会再次创建。你的情况一定发生了同样的事情,并且onCreate()被叫了。

+1

我重写onLowMemory()到我的服务并检查。但是这个方法没有被调用。 – 2013-05-10 08:48:32