没有在android中接收解析推送,它导致app已经停止弹出

时间:2016-01-23 13:30:16

标签: android parse-platform push-notification

我已经看了2个多小时的解决方案,但没有机会。

我已经将解析安装到我的应用程序android中,并且已经将它安装在我的手机中(android s4 mini,目前使用的是wifi)。

以下是我在项目中设置解析的方式:

Parse.initialize(mInstance, App.parseAppId, App.parseAppKey);
// Specify an Activity to handle all pushes by default.
PushService.setDefaultPushCallback(mInstance, MainActivity.class);
ParseInstallation.getCurrentInstallation().saveInBackground();

我看到解析记录了我的安装 http://awesomescreenshot.com/0865kofmd9

但是当我发送推送时,我的应用程序崩溃了#34;不幸的是,应用程序已停止工作"

这是我的androidmanifest:
http://pastebin.com/UySbvP8P

有什么建议吗?

由于

1 个答案:

答案 0 :(得分:1)

请尝试用以下代码替换默认的解析推送接收器::

删除:

PushService.setDefaultPushCallback(mInstance, MainActivity.class);

的AndroidManifest.xml:

    <receiver
        android:name="ParsePushReceiver"
        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>

ParsePushReceiver.java:

import android.content.Context;
import android.content.Intent;

import com.parse.ParsePushBroadcastReceiver;

public class ParsePushReceiver extends ParsePushBroadcastReceiver {
    @Override
    public void onPushOpen(Context context, Intent intent) {
        Intent newIntent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
        newIntent.putExtras(intent.getExtras());
        context.startActivity(newIntent);
    }
}

App.java

@Override
public void onCreate() {
    super.onCreate();
    Parse.initialize(this, parseAppId, parseAppKey);
    if (ParseInstallation.getCurrentInstallation() != null && ParseInstallation.getCurrentInstallation().getCreatedAt() == null) {
        ParseInstallation.getCurrentInstallation().saveInBackground(new SaveCallback() {
            @Override
            public void done(ParseException e) {
                if (e != null) {
                    //track error
                }
            }
        });
    }
    mInstance = this;
    if (isOnline()) {
        makeJsonObjectRequest();
    }
}