我遇到的整个问题都是这行代码
PushService.setDefaultPushCallback(this,MainActivity.class);
在导入PushService时,不推荐使用setDefaultPushCallback |()。为什么会这样呢?我收到通知但是点击应用程序正在崩溃。当应用程序未运行时也无法接收。
答案 0 :(得分:5)
我找到了解决方案,很简单 我发现了同样的问题 https://stackoverflow.com/a/26180181/3904085
" 花了几个小时后。找到解决方案:实现接收器并扩展ParsePushBroadcastReceiver类。
Receiver.java
public class Receiver extends ParsePushBroadcastReceiver {
@Override
public void onPushOpen(Context context, Intent intent) {
Log.e("Push", "Clicked");
Intent i = new Intent(context, HomeActivity.class);
i.putExtras(intent.getExtras());
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
在清单中使用它,(而不是使用ParsePushBroadcastReceiver)
项目清单代码:
<receiver
android:name="your.package.name.Receiver"
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>
&#34; 归功于@Ahmad Raza
答案 1 :(得分:2)
来自onPushOpen()的Parse文档:
用户打开推送通知时调用。将分析信息发送回Parse,从此推送通知打开应用程序。默认情况下,这将导航到ParsePushBroadcastReceiver返回的Activity。 getActivity (Context,Intent)。如果推送包含一个&#39; uri&#39;参数,一个Intent被激活,以查看该URI与后面堆栈中ParsePushBroadcastReceiver.getActivity(android.content.Context,android.content.Intent)返回的Activity。
因此,如果您覆盖onPushOpen(),则不会发送任何分析。
所以这是我的代码:
readTextFile("testing.txt", function(str) {
var n = str.search("Testing Search");
});
您需要像上面的帖子一样注册接收器。
使用Parse 1.10.3进行测试