1
我已經從Parse.com下載了一個Xamarin.Android推送通知示例項目,並且它在應用程序處於前景或最小化時起作用。 如果我從最近的應用程序屏幕中終止應用程序,應用程序將不會顯示未來的通知。當應用程序在Android上被終止時,解析推送通知不起作用
我的清單:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.parse.parsexamarinpushsample" android:versionCode="1" android:versionName="1.0" android:installLocation="auto">
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="21" />
<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.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:protectionLevel="signature" android:name="com.parse.parsexamarinpushsample.permission.C2D_MESSAGE" />
<uses-permission android:name="com.parse.parsexamarinpushsample.permission.C2D_MESSAGE" />
<application android:name="parsexamarinpushsample.ParseApplication" android:label="ParseXamarinPushSample" android:icon="@drawable/Icon" android:theme="@android:style/Theme.Light">
<receiver android:name="parse.ParsePushBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">
<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" />
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.parse.parsexamarinpushsample" />
</intent-filter>
</receiver>
<service android:name="parse.ParsePushService" />
</application>
我的代碼:
public override StartCommandResult OnStartCommand(Intent intent, StartCommandFlags flags, int startId)
{
ParseClient.Initialize("appid", "clientid");
ParsePush.ParsePushNotificationReceived += ParsePush.DefaultParsePushNotificationReceivedHandler;
ParsePush.ParsePushNotificationReceived += ParsePushOnParsePushNotificationReceived;
ParseInstallation installation = ParseInstallation.CurrentInstallation;
installation.SaveAsync();
return StartCommandResult.Sticky;
}
發出通知後,我注意到在解析儀表盤該通知被標記爲「成功」,所以我有一個理由相信我的手機正在收到通知,但沒有可以處理的應用程序。
我是否需要一些針對廣播接收者的意圖操作或者我的清單有問題?
在此先感謝
原因是,如果你正在殺死你的應用程序,你也在查殺連接到這個應用程序的服務和廣播接收器。因爲你的應用程序無法接收通知。有方法可以重新啓動這些服務,但它們相當複雜 – Rich
我以同樣的方式殺死Viber,Instagram和Facebook Messenger,並且我仍然收到來自這些服務的通知。你知道如何用Parse API實現這種行爲嗎? – Xzil0
正如我所說的,有些方法可以在被殺時自動重啓服務。你必須找到一種方法來做到這一點(例如http://stackoverflow.com/questions/21550204/how-to-automatically-restart-a-service-even-if-user-force-close-it) – Rich