我正在使用 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);
}
请提供任何帮助
-
PushService
新 API 已完全弃用,您可以通过声明ParsePushBroadcastReceiver
在你的清单中。您可以阅读有关推送的更改公告博文 http://blog.parse.com/2014/09/30/android-push-gets-major-refresh/
- 您的答案就在错误消息本身中。调用 Parse.initialize。你的 Activity 的 onCreate 应该有
Parse.initialize(this, "YOUR APPLICATION ID", "YOUR CLIENT KEY");
如果您将此代码放入 Activity 而不是您的应用程序中,则 Android 可能会因不活动而关闭您的应用程序,然后通过推送意图而不是您的启动器 Activity 重新启动它,在这种情况下您将不会调用 Parse.intialize。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)