簡體   English   中英

Parse.com - Android中的推送通知配置問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM