運行我已經按照本教程中創建一個新的GCM Listener服務: http://www.appifiedtech.net/2015/08/01/android-gcm-push-notification-example/GcmListenerService當背景不同
爲聽衆服務的代碼:當應用程序正在運行
@Override
public void onMessageReceived(String from, Bundle data) {
super.onMessageReceived(from, data);
String msg = data.getString("message");
Log.d(TAG,"GCM Message received is "+msg);
// Notifying to user code goes here
notifyUser(getApplicationContext(),msg);
}
public void notifyUser(Context context,String data){
Intent intent = new Intent(context, NotificationActivity.class);
intent.putExtra("data", data);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
builder.setSmallIcon(R.mipmap.ic_launcher);
builder.setAutoCancel(true);
builder.setContentTitle("New Notification");
builder.setContentIntent(pendingIntent);
builder.setContentText(data);
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Uri uri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
builder.setSound(uri);
notificationManager.notify(countNotification++, builder.build());
Log.v(TAG,"count "+countNotification);
}
(前景),這工作正常,並啓動通知活動,因爲它應該。
然而,當它在後臺的運行,我得到的通知,但標題和正文都在我的服務器發送應用程序定義,並攻上需要我的主要活動。
這基本上意味着當它在後臺運行時,其他的東西會處理通知?我是否應該實施另一個處理程序,以便能夠管理該通知並將用戶發送到正確的活動?
,當我收到此通知的屏幕不醒來,也沒有LED燈在手機上的其它應用程序的通知做。你如何管理?
(權限,服務和接收器在清單中被定義爲在教程描述)
感謝KENdi,我自己想出了這兩個,但是我仍然無法使LED點亮GCMReceiver。 'builder.setLights(Color.BLUE,500,500);' 關於這個的任何想法? –
讓LED也可以工作。出於某種原因,BLUE不工作,而GREEN很好。總之,對於我的問題,您需要使GCMReceiver的GCMListenerService實現幾乎相同。要喚醒處理器,您需要使用PowerManager newWakeLock和Acquire/Release。 –