मैं ट्रैक कर रहा हूं कि प्रत्येक ऐप के ऑनस्यूम() और minusActivity() से प्लसएक्टिविटी() को कॉल()एंड्रॉइड एप्लिकेशन पृष्ठभूमि के लिए सरल जांच
से प्लसएक्टिविटी() को कॉल करके मेरे ऐप (जो 0 या 1 होना चाहिए) में कितनी सक्रियताएं दिखाई दे रही हैंप्लस/minusActivity मेरे myplication वर्ग में हैं, जो एप्लिकेशन को बढ़ाता है।
विधियां बढ़ती हैं और काउंटर कम करती हैं। हर बार minusActivity() कहा जाता है, यह भी एक रननेबल पोस्ट करता है जो 2 सेकंड के बाद चलता है। जब रननेबल निष्पादित होता है, तो पिछली बार 2 सेकंड पहले बंद होने के बाद दूसरी गतिविधि खोला नहीं गया है (उदाहरण के लिए अग्रभूमि एक्टिविटीज == 0 क्योंकि प्लस एक्टिविटी() को 2 सेकेंड के भीतर कुछ भी नहीं कहा जाता है), तो यह कुछ सामान करने की विधि को कॉल करता है जो होने की आवश्यकता है जब पृष्ठभूमि।
यहाँ एक टुकड़ा है:
public void plusActivity(){
foregroundedActivities++;
}
public void minusActivity(){
foregroundedActivities--;
timingHandler.removeCallbacks(checkBackgroundTask);
timingHandler.postDelayed(checkBackgroundTask, 2000);
}
public void checkIfBackgrounded(){
if(foregroundedActivities==0){
doWhateverWeDoWhenBackgrounded();
}
}
public Runnable checkBackgroundTask=new Runnable(){
@Override
public void run() {
checkIfBackgrounded();
}
};
को देखते हुए 2-सेकंड समय सीमा इस प्रक्रिया में चल रही है, और कहा कि एक गतिविधि के लिए कोई कॉलबैक शामिल कर रहे हैं, यह एक स्वीकार्य रास्ता पृष्ठभूमि का पता लगाने पूरा करने के लिए है, या मैं सच में करना सेवा के साथ यह सब करने की ज़रूरत है? ऐसा लगता है कि बहुत सारे ओवरहेड हैं और मुझे कोई लाभ नहीं दिख रहा है, क्योंकि यह ठीक काम करता प्रतीत होता है।