मुझे कभी-कभी मेरी जीसीएम सेवा के साथ कोई समस्या है जो बंद हो जाता है जब मेरे स्मार्टफ़ोन की रैम स्वचालित रूप से साफ़ हो जाती है (यदि आपको अधिक जानकारी चाहिए तो this पढ़ें)।अग्रभूमि में GcmListenerService को कैसे चलाएं
जहां तक मैं समझता हूं कि अगर मैं अपनी सेवा को अग्रभूमि में चलाने के लिए सेट करता हूं तो इसे सिस्टम को रैम से हटाने में मदद करनी चाहिए। Service.class
onStartCommand()
की विधि आमतौर पर startForeground()
विधि चलाने के लिए उपयोग की जाती है।
लेकिन GCM कार्यान्वयन के नवीनतम संस्करण के साथ यह असंभव है के बाद से माता-पिता GCMListenerService.class
की onStartCommand()
पद्धति के रूप में अंतिम परिभाषित किया गया है और मैं इसे ओवरराइड नहीं कर सकते।
तो मैं अपने जीसीएम रिसीवर को अग्रभूमि में रम में कैसे सेट कर सकता हूं?
यहां जीसीएम के बारे में मेरा स्पष्ट हिस्सा है।
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="my.app.path" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- ... other permissions -->
<permission
android:name="my.app.path.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="my.app.path.permission.C2D_MESSAGE" />
<application
...>
<!-- ... activites... -->
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="my.app.path" />
</intent-filter>
</receiver>
<service
android:name=".MyGcmListener"
android:exported="false"
android:enabled="true" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
</application>
</manifest>
अग्रिम धन्यवाद।
आप [यहां] (http://stackoverflow.com/a/31302248/4186942) पढ़ने की कोशिश कर सकते हैं। या एक संभावित समाधान 'sendOrderedBroadcast' है। इसके बारे में अधिक जानकारी के लिए कृपया [यहां] देखें (http://markhudnall.com/2013/11/13/gcm-foreground-and-background/): http://markhudnall.com/2013/11/13/gcm -foreground और पृष्ठभूमि /। – bjiang
आप कितनी रैम लक्षित कर रहे हैं? –
@ आर्थर थॉम्पसन, क्या आपका मतलब है कि मेरे फोन में कितनी रैम है? ऐप का वर्तमान संस्करण 3.55 एमबी – user2957954