1
我跟着這個鏈接https://developers.google.com/cloud-messaging/android/start但我不明白幾件事情。GCM GcmListenerService和InstanceIDListenerService
- 我從哪裏開始
GcmListenerService
和InstanceIDListenerService
(服務),因爲在他們的例子並不在代碼的任何地方啓動它。這些課程是否自動啓動?
我GcmListenerService
類:
public class GcmMessageReceiver extends GcmListenerService {
public GcmMessageReceiver() {
Log.i("TEST", "GcmMessageReceiver");
}
@Override
public void onMessageReceived(String from, Bundle data) {
String message = data.getString("message");
Log.i("TEST", data.toString());
Log.i("TEST", "Success!");
}
GcmListenerService
艙單申報:
<service
android:name=".GcmMessageReceiver"
android:exported="false" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
我InstanceIDListenerService類:
public class GcmOnTokenRefresh extends InstanceIDListenerService {
public GcmOnTokenRefresh(){
Log.i("TEST", "GcmOnTokenRefresh");
}
@Override
public void onTokenRefresh() {
startService(new Intent(this, RegisterTokenService.class));
super.onTokenRefresh();
}
}
我InstanceIDListenerService
清單declaratio n:
<service
android:name=".GcmOnTokenRefresh"
android:exported="false" >
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID" />
</intent-filter>
</service>
在這些服務中,在構造函數中,我嘗試打印出一些值來查看服務是否已啓動(如您在給定代碼中所見),但沒有打印出來。這些服務何時開始運行? –
當應用程序收到通知的意圖時,它們開始。 –
還有一件事,你的註冊服務應該從你的主要活動開始,我忘了它:) –