仅从服务中获取意图信息一次

时间:2013-08-08 06:36:52

标签: android android-intent service oncreate

我正在运行一项服务。我理想的过程是调用一次方法,获取intent / extras并设置参数,然后在给定的时间内运行我的服务。

根据我的理解,onCreate()只被调用一次,而每次调用服务时都会调用onStartCommand。这当前让我处于落后的状态,我想要调用一次的方法,无法访问intent extras,并且我不希望每次通过具有intent访问权限的方法调用startService时重新分配参数(或者我不应该关心这种情况吗?)。

唯一的方法是按照我想要的方式获得我想要发生的事情,只是限制启动服务的能力,如果它已经在运行?

提前致谢。

1 个答案:

答案 0 :(得分:0)

在onCreate中放置一个静态int标志,并在第一次调用时将其提升为1然后在OnStartcommand中检查它是否为1或0如果为零则执行你想做的事情否则什么也不做

  static int flag=0;
public void onCreate() {
    // TODO Auto-generated method stub
    super.onCreate();
    flag=1
}
public int onStartCommand(Intent intent, int flags, int startId) {
if(flag==0){
//run ur code
}
}