解析推送通知最终在android中的后台崩溃

时间:2014-12-16 14:08:49

标签: android parse-platform push-notification

我正在使用Parse在Android中推送通知,但是当我关闭wifi时,它最终会在后台崩溃。

它给了我错误:

java.lang.RuntimeException:无法启动接收器com.parse.ParseBroadcastReceiver:java.lang.RuntimeException:applicationContext为null。在使用Parse库之前,必须调用Parse.initialize(context,applicationId,clientKey)。

这是我的代码

public class ParseBroadcastReceiverCustom extends BroadcastReceiver {

@Override
public void onReceive(final Context context, Intent intent) {
    if(intent == null)
        return;
    ConnectionDetector connection = new ConnectionDetector(context);

    if (connection.isNetworkAvailable()) {
        PushService.startServiceIfRequired(context);
    }
}
}

和清单文件

 <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>

和主要活动onCreate方法

    ConnectionDetector connection = new ConnectionDetector(this);
    if (connection.isNetworkAvailable()) {
        PushService.setDefaultPushCallback(this, RegisterForget.class);
    }

任何帮助,请

2 个答案:

答案 0 :(得分:2)

  1. PushService已完全弃用新API,您可以通过在清单中声明ParsePushBroadcastReceiver来启用新API。您可以在announcement blogpost
  2. 中了解要推送的更改
  3. 您的答案出现在错误消息中。调用Parse.initialze。您在onCreate上的活动应该有 Parse.initialize(this, "YOUR APPLICATION ID", "YOUR CLIENT KEY"); 如果您将此代码放在活动而不是您的应用程序中,那么Android可能会因为不活动而关闭您的应用,然后通过推送意图而不是您的启动器活动重新启动它,在这种情况下您不会调用Parse。 intialize。

答案 1 :(得分:0)

我一步一步地按照本教程进行操作,现在可以使用了 https://parse.com/tutorials/android-push-notifications