我正在使用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);
}
任何帮助,请
答案 0 :(得分:2)
PushService
已完全弃用新API,您可以通过在清单中声明ParsePushBroadcastReceiver
来启用新API。您可以在announcement blogpost Parse.initialize(this, "YOUR APPLICATION ID", "YOUR CLIENT KEY");
如果您将此代码放在活动而不是您的应用程序中,那么Android可能会因为不活动而关闭您的应用,然后通过推送意图而不是您的启动器活动重新启动它,在这种情况下您不会调用Parse。 intialize。答案 1 :(得分:0)
我一步一步地按照本教程进行操作,现在可以使用了 https://parse.com/tutorials/android-push-notifications