【问题标题】:Grab intent information from a service, only once从服务中获取意图信息,仅一次
【发布时间】:2013-08-08 06:36:51
【问题描述】:
我正在运行一项服务。我的理想过程是调用一次方法,获取意图/附加内容并设置参数,然后在给定的时间内运行我的服务。
据我了解,onCreate() 只被调用一次,而 onStartCommand 每次调用你的服务时都会被调用。这目前使我处于落后的情况,我想调用一次的方法无法访问意图额外内容,并且我不想在每次通过具有意图访问权限的方法调用 startService 时重新分配参数(或我应该不在乎这种情况吗?)。
是否只有这样才能以我想要的方式实现我想要的事情,如果它已经在运行,只限制启动服务的能力?
提前致谢。
【问题讨论】:
标签:
android
android-intent
service
oncreate
【解决方案1】:
在 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
}
}