好的,我终于设置好了推送通知设备的注册。我找到了这个代码来接收新的通知并将其显示出来。问题是我不确定它应该放在哪里。我对Android编程还比较陌生,所以需要帮助。
我有一个名为GCMService的服务类如下。
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import com.google.android.gcm.GCMBaseIntentService;
public class GCMService extends GCMBaseIntentService {
private static final String TAG = "GCMService";
public GCMService() {
super();
}
@Override
protected void onRegistered(Context context, String regId) {
Log.i(TAG, "Device registered: regId= " + regId);
}
@Override
protected void onUnregistered(Context context, String regId) {
Log.i(TAG, "Device unregistered");
}
@Override
protected void onMessage(Context context, Intent intent) {
Log.i(TAG, "Received message");
}
@Override
public void onError(Context context, String errorId) {
Log.i(TAG, "Received error: " + errorId);
}
@Override
protected boolean onRecoverableError(Context context, String errorId) {
Log.i(TAG, "Received recoverable error: " + errorId);
return super.onRecoverableError(context, errorId);
}
}
下面这个函数应该放在上面所述的类中的哪里,才能接收到新消息?
private static void generateNotification(Context context, String message) {
int icon = R.drawable.ic_launcher;
long when = System.currentTimeMillis();
NotificationManager notificationManager = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(icon, message, when);
String title = context.getString(R.string.app_name);
Intent notificationIntent = new Intent(context, LauncherActivity.class);
PendingIntent pintent = PendingIntent.getActivity(context, 0, intent,
Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
notification.setLatestEventInfo(context, title, message, intent);
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.defaults |= Notification.DEFAULT_SOUND;
notification.defaults |= Notification.DEFAULT_VIBRATE;
notificationManager.notify(1, notification);
}