我已经看了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
有什么建议吗?
由于
答案 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();
}
}