Android解析通知没有应用程序在后台?

时间:2015-11-22 12:30:01

标签: android parse-platform notifications

我无法找到一个页面或问题,它可以告诉我如何在没有应用程序在后台运行或打开的情况下发出通知。 如果有人能帮忙的话会很棒。 (我使用的是Android)

1 个答案:

答案 0 :(得分:1)

第一步是创建一个Parse帐户并获取您的应用程序ID和客户端密钥。

之后,你必须创建一个自己的自定义Application类,方法是创建一个扩展Application的类,然后覆盖onCreate(就像你的任何活动一样)并放入该行。

public class MyApplication extends Application {
public void onCreate() {
    Parse.initialize(this, PARSE_APPLICATION_ID, PARSE_CLIENT_KEY);
    ParseInstallation.getCurrentInstallation().saveInBackground();
}
}

您还必须告诉清单您正在使用自定义应用程序类。您可以在AndroidManifest.xml文件中执行此操作,您必须将name元素设置为新Application类的位置:

<application
    android:name="com.packageName.example.MyApplication"
    android:label="@string/app_name"
    android:logo="@drawable/ic_launcher_no_text" >

在清单文件中

声明以下权限:

<permission android:name="com.packagename.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.packagename.permission.C2D_MESSAGE" />

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" /> 
<uses-permission android:name="android.permission.INTERNET"/>

同时在清单中声明servicereceiver

<service android:name="com.parse.PushService" />
    <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.packagename.android" />
        </intent-filter>
    </receiver>

将com.packagename更改为您的包名称!

最后转到您的解析帐户并尝试从那里发送推送通知。