[英]Parse.com - Push Notifications configuration problems in Android
我正在嘗試根據文檔設置Parse.com推送通知:
我的清單xml有以下相關條目:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hello.world"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="17" />
....
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<!-- NOTE THIS NEXT LINE -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission
android:name="com.hello.world.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.hello.world.permission.C2D_MESSAGE" />
....
<service android:name="com.parse.PushService" />
<receiver android:name="com.parse.ParseBroadcastReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
<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>
<receiver
android:name="com.parse.GcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.hello.world" />
</intent-filter>
</receiver>
</application>
在清單中添加parse.com推送相關配置后 - 應用程序已停止工作 - 它只是在啟動時掛起,我沒有看到第一個屏幕。
編輯1
調試后,我發現應用程序在嘗試第一次調用Parse時掛起:
ParseQuery<ParseObject> query = ParseQuery.getQuery("myclass");
List<ParseObject> myclassresult = query.find();//App Hangs at THIS line
為什么只有在添加Parse.com推送配置時才會發生這種情況?
沒有Parse.com推送配置,這一行和應用程序工作正常
(另請注意,我沒有在Parse.com上為應用程序啟用Push進行任何特定配置,我使用普通的Parse.com sdk,而不是任何特殊的sdk用於推送通知)
編輯2
當我查看相關的線程(AsyncTask#1)堆棧跟蹤時,我看到以下內容:
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:364)
at bolts.Task.waitForCompletion(Task.java:119)
at com.parse.Parse.waitForTask(Parse.java:721)
at com.parse.ParseUser.getCurrentUser(ParseUser.java:1044)
at com.parse.ParseQuery.getUser(ParseQuery.java:298)
at com.parse.ParseQuery.findInBackground(ParseQuery.java:892)
at com.parse.ParseQuery.find(ParseQuery.java:529)
at com.hello.world.MyQueryClass.getDataFromParse(MyQueryClass.java:..)
...
解決方案是卸載然后再次安裝應用程序。 只是在現有應用程序之上重新安裝不起作用 - 而是導致奇怪的行為!
如果有人知道這個的原因 - 請發表評論。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.