Android的 - 无法从Parse.com接收推送 [英] Android - Can not Receive Push from Parse.com

查看:158
本文介绍了Android的 - 无法从Parse.com接收推送的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经建立了我的使用解析1.7.1 SDK版本Android应用解析通知。

但在新的Andr​​oid此方法解析说叫去是preciated。

  PushService.setDefaultPushCallback(这一点,MainActivity.class);

但是,当它被删除的通知从parse.com发送,我可以在网站上看到,但它并没有到达手机?

这怎么可能改变,因此推到?如果不使用德preciated方法?

感谢您提前帮助。


解决方案

尝试扩展ParsePushBroadcastReceiver类,并使用其


  • OnPushRecieve(在状态栏显示通知之前做的东西)

  • OnPushOpen(做一些动作,当用户打开的推动,例如打开一个活动)

  • 的GetNotification和

  • onPushDismiss方法
    结果
    而在manifest文件替换

\r
\r

<接收机器人:名字=com.parse.ParsePushBroadcastReceiver机器人:出口=假>\r
  &所述;意图滤光器>\r
    <作用机器人:名字=com.parse.push.intent.RECEIVE/>\r
    <作用机器人:名字=com.parse.push.intent.DELETE/>\r
    <作用机器人:名字=com.parse.push.intent.OPEN/>\r
  &所述; /意图滤光器>\r
< /接收器>

\r

\r
\r

本:

\r
\r

<接收\r
            机器人:名字=com.example.parse.Notifications.NotificationsReciever\r
            机器人:出口=假>\r
            &所述;意图滤光器>\r
                <作用机器人:名字=com.parse.push.intent.RECEIVE/>\r
                <作用机器人:名字=com.parse.push.intent.DELETE/>\r
                <作用机器人:名字=com.parse.push.intent.OPEN/>\r
            &所述; /意图滤光器>\r
        < /接收器>

\r

\r
\r

如果你想打开一个活动的 onPushOpen 中,这里是一个示例:

\r
\r

@覆盖\r
保护无效onPushOpen(上下文的背景下,意图意图){\r
// TODO自动生成方法存根\r
意图I =新意图(背景下,PushNotificationHandler.class);\r
i.putExtras(intent.getExtras());\r
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);\r
context.startActivity(ⅰ);\r
}

\r

\r
\r

下面是一个扩展ParsePushBroadcastReciever类

样本类

\r
\r

公共类NotificationsReciever扩展ParsePushBroadcastReceiver {\r
\r
@覆盖\r
保护类:LT ;?扩展活动> getActivity(上下文为arg0,ARG1意向){\r
// TODO自动生成方法存根\r
\r
返回ParseStarterProjectActivity.class;\r
}\r
\r
@覆盖\r
保护通知的GetNotification(上下文的背景下,意图意图){\r
// TODO自动生成方法存根\r
返回super.getNotification(背景下,意图);\r
}\r
\r
@覆盖\r
保护无效onPushDismiss(上下文的背景下,意图意图){\r
// TODO自动生成方法存根\r
super.onPushDismiss(背景下,意图);\r
}\r
\r
@覆盖\r
保护无效onPushOpen(上下文的背景下,意图意图){\r
// TODO自动生成方法存根\r
意图I =新意图(背景下,PushNotificationHandler.class);\r
i.putExtras(intent.getExtras());\r
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);\r
context.startActivity(ⅰ);\r
}\r
\r
@覆盖\r
保护无效onPushReceive(上下文的背景下,意图意图){\r
//在这里您可以将出现的状态例如,如果你想停止它时,按下手柄。\r
super.onPushReceive(背景下,意图);\r
\r
}\r
\r
}

\r

\r
\r

I have parse notifications set up for my android app using Parse 1.7.1 sdk version.

But in the new android this method with parse says to call is depreciated.

PushService.setDefaultPushCallback(this, MainActivity.class);

But when it is removed the notification is sent from parse.com as I can see on the website but it does not arrive to the phone?

How can this be changed so that the push will arrive? Without using the depreciated method?

Thanks for the help in advance.

解决方案

Try extending ParsePushBroadcastReceiver class and and use its

  • OnPushRecieve (to do something before notification is shown in status bar)
  • OnPushOpen (to do some action when user open's push for example open an activity)
  • getNotification and
  • onPushDismiss methods
    And in manifest file replace

<receiver android:name="com.parse.ParsePushBroadcastReceiver" android:exported="false">
  <intent-filter>
    <action android:name="com.parse.push.intent.RECEIVE" />
    <action android:name="com.parse.push.intent.DELETE" />
    <action android:name="com.parse.push.intent.OPEN" />
  </intent-filter>
</receiver>

with this :

 <receiver
            android:name="com.example.parse.Notifications.NotificationsReciever"
            android:exported="false" >
            <intent-filter>
                <action android:name="com.parse.push.intent.RECEIVE" />
                <action android:name="com.parse.push.intent.DELETE" />
                <action android:name="com.parse.push.intent.OPEN" />
            </intent-filter>
        </receiver>

And if you want to open an activity onPushOpen, here is a sample:

@Override
	protected void onPushOpen(Context context, Intent intent) {
		// TODO Auto-generated method stub
		Intent i = new Intent(context, PushNotificationHandler.class);
		i.putExtras(intent.getExtras());
		i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		context.startActivity(i);
	}

Here is a sample class that extends ParsePushBroadcastReciever class

public class NotificationsReciever extends ParsePushBroadcastReceiver {

	@Override
	protected Class<? extends Activity> getActivity(Context arg0, Intent arg1) {
		// TODO Auto-generated method stub

		return ParseStarterProjectActivity.class;
	}

	@Override
	protected Notification getNotification(Context context, Intent intent) {
		// TODO Auto-generated method stub
		return super.getNotification(context, intent);
	}

	@Override
	protected void onPushDismiss(Context context, Intent intent) {
		// TODO Auto-generated method stub
		super.onPushDismiss(context, intent);
	}

	@Override
	protected void onPushOpen(Context context, Intent intent) {
		// TODO Auto-generated method stub
		Intent i = new Intent(context, PushNotificationHandler.class);
		i.putExtras(intent.getExtras());
		i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		context.startActivity(i);
	}

	@Override
	protected void onPushReceive(Context context, Intent intent) {
	//here You can handle push before appearing into status e.g if you want to stop it.
		super.onPushReceive(context, intent);
	 
	}

}

这篇关于Android的 - 无法从Parse.com接收推送的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆