使用SharedPreferences的解决方案:
根据documentation,当IntentService收到启动请求时,系统调用onHandleIntent(Intent)。
因此,每当您向队列中添加 Intent 时,您都会递增并存储一个 Integer,它表示队列中 Intents 的数量:
public void addIntent(){
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
int numOfIntents = prefs.getInt("numOfIntents", 0);
numOfIntents++;
SharedPreferences.Editor edit = prefs.edit();
edit.putInt("numOfIntents",numOfIntents);
edit.commit();
}
然后,每次调用 onHandleIntent(Intent) 时,您都会减少 Integer 的值:
public void removeIntent(){
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
int numOfIntents = prefs.getInt("numOfIntents", 0);
numOfIntents--;
SharedPreferences.Editor edit = prefs.edit();
edit.putInt("numOfIntents",numOfIntents);
edit.commit();
}
最后,每当您想检查队列中有多少 Intents 时,您只需获取该值:
public void checkQueue(){
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplication());
int numOfIntents = prefs.getInt("numOfIntents",0);
Log.d("debug", numOfIntents);
}