我已经对WhatsApp进行了测试,当我强制停止时,它正在接收推送通知.
那么如何在我的应用程序中实现相同的功能.
注意:在代码中,我在WakefulbroadcastReceiver的子类中接收PushNotifications,我已经在清单中静态注册它,即使在应用程序强制停止时也不会调用它.
public class GCM_Receiver extends WakefulbroadcastReceiver { //Processes Gcm message . @OverrIDe public voID onReceive(Context context,Intent intent) { Toast.makeText(context,"GCM_Receiver",Toast.LENGTH_LONG).show(); Componentname comp = new Componentname(context.getPackagename(),GCMIntentService.class.getname()); startWakefulService(context,(intent.setComponent(comp))); setResultCode(Activity.RESulT_OK); }}
编辑:
我已经以这种方式静态注册了GCM_Receiver:
<receiver androID:name="com.myApp.GCM_Receiver" androID:permission="com.Google.androID.c2dm.permission.SEND" > <intent-filter> <action androID:name="com.Google.androID.c2dm.intent.RECEIVE" /> <action androID:name="com.Google.androID.c2dm.intent.RETRY" /> <action androID:name="com.Google.androID.c2dm.intent.REGISTRATION" /> <category androID:name="com.myApp" /> </intent-filter> </receiver>
编辑:
我的GCMIntentService代码如下:
public class GCMIntentService extends IntentService{//Constructor with super().public GCMIntentService () { super("GcmIntentService");}//Processes gcm messages .@OverrIDeprotected voID onHandleIntent(Intent intent) { Log.d("GCMIntentService ","GCMIntentService Started"); Toast.makeText(getApplicationContext(),"GCMIntentService Started",Toast.LENGTH_LONG).show(); GCM_Receiver.completeWakefulintent(intent);}}@H_419_4@解决方法 只有Google Play服务可以通过com.Google.androID.c2dm.permission.SEND权限调用该特定广播接收器.由于我假设Play服务在发送广播时不包含 FLAG_INCLUDE_STOPPED_PACKAGES标志,因此强制停止的应用程序将不会收到消息.
有趣的是,强制停止应用程序后,我没有收到任何WhatsApp消息.无论应用程序如何,如果它可以在强制停止时接收消息,那么它肯定会从具有FLAG_INCLUDE_StopPED_PACKAGES标志的意图接收广播.
@H_419_4@ @H_419_4@ @H_419_4@ @H_419_4@ 总结以上是内存溢出为你收集整理的应用程序强制停止时接收推送通知.(Android)全部内容,希望文章能够帮你解决应用程序强制停止时接收推送通知.(Android)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)