不推荐使用PushService类型的方法setDefaultPushCallback(Context,Class <! - ?extends Activity - >)

时间:2014-10-31 14:28:28

标签: parse-platform push

我遇到的整个问题都是这行代码

PushService.setDefaultPushCallback(this,MainActivity.class);

在导入PushService时,不推荐使用setDefaultPushCallback |()。为什么会这样呢?我收到通知但是点击应用程序正在崩溃。当应用程序未运行时也无法接收。

2 个答案:

答案 0 :(得分:5)

我找到了解决方案,很简单 我发现了同样的问题 https://stackoverflow.com/a/26180181/3904085

&#34; 花了几个小时后。找到解决方案:实现接收器并扩展ParsePushBroadcastReceiver类。

Receiver.java

public class Receiver extends ParsePushBroadcastReceiver {

    @Override
    public void onPushOpen(Context context, Intent intent) {
        Log.e("Push", "Clicked");
        Intent i = new Intent(context, HomeActivity.class);
        i.putExtras(intent.getExtras());
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
    }
}

在清单中使用它,(而不是使用ParsePushBroadcastReceiver)

项目清单代码:

<receiver
    android:name="your.package.name.Receiver"
    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>

&#34; 归功于@Ahmad Raza

答案 1 :(得分:2)

来自onPushOpen()的Parse文档:

  

用户打开推送通知时调用。将分析信息发送回Parse,从此推送通知打开应用程序。默认情况下,这将导航到ParsePushBroadcastReceiver返回的Activity。 getActivity (Context,Intent)。如果推送包含一个&#39; uri&#39;参数,一个Intent被激活,以查看该URI与后面堆栈中ParsePushBroadcastReceiver.getActivity(android.content.Context,android.content.Intent)返回的Activity。

因此,如果您覆盖onPushOpen(),则不会发送任何分析。

所以这是我的代码:

readTextFile("testing.txt", function(str) {
    var n = str.search("Testing Search");
});

您需要像上面的帖子一样注册接收器。

使用Parse 1.10.3进行测试