मैं सोच रहा हूं कि जीसीएम से onMessage()
प्राप्त करते समय मेरा एप्लिकेशन खुला है या वर्तमान में उपयोगकर्ता के लिए दृश्यमान है या नहीं। सबसे पहले, मैं बस अपने boolean isVisible
का उपयोग कर रहा था, लेकिन फिर मुझे एहसास हुआ कि यह विश्वसनीय नहीं है, क्योंकि यदि ऐप खुला नहीं है, तो उस ध्वज को एक्सेस करने के लिए मैं जिस ऑब्जेक्ट का उपयोग करता हूं वह null
है। हालांकि यह स्वयं यह देखने के लिए इस्तेमाल किया जा सकता है कि ऐप खुला है या नहीं, यह थोड़ा गन्दा लगता है। क्या सिस्टम स्तर से एंड्रॉइड में किसी भी तरह से यह जांचने का कोई तरीका है कि एप्लिकेशन वर्तमान में खुला है या नहीं, और यदि उपयोगकर्ता ऐप देख रहा है? ध्यान रखें कि एक ऐप तकनीकी रूप से चल रहा है, लेकिन दिखाई नहीं दे रहा है, क्योंकि उपयोगकर्ता ने हाल ही में पृष्ठभूमि में इसे "होम" बटन दबाया है।जांचें कि क्या जीसीएम ऑन मैसेज इवेंट के दौरान ऐप खुला है?
@Override
protected void onMessage(Context arg0, Intent arg1) {
String turn = intent.getExtras().getString("turn");
if (turn.equals("yours"){
if (/*app is open*/){ <------------------ what can go here?
// dont generate a notification
// display something in the game instead
}
else{
// generate notification telling player its their turn
}
}
}
मेमोरी लीक के बारे में सावधान रहें! – rciovati
@rciovati रिसाव कहां है? – Klaasvaak
क्षमा करें, मैंने गतिविधि को चालू होने पर 'currentActivity' के संदर्भ में 'null'' पर सेट नहीं किया है। – rciovati