0

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

据我了解, onCreate() 只被调用一次,而 onStartCommand 每次调用你的服务时都会被调用。这目前使我处于落后的情况,我想调用一次的方法无法访问意图额外内容,并且我不想在每次通过具有意图访问权限的方法调用 startService 时重新分配参数(或我应该不在乎这种情况吗?)。

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

提前致谢。

4

1 回答 1

0

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

  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
}
}
于 2013-08-08T06:50:26.147 回答