2016-02-01 5 views
-2

im пытается реализовать push-уведомление в моем приложении, уже используя GCM. Но дело в том, что я хочу, чтобы он работал так же, как и офлайн. i.e: для нескольких условий внутри приложения Android оно должно вызывать push-уведомление.Android push notification offline

В настоящее время им пытаются:

NotificationManager mNotificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); 
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification); 
contentView.setImageViewResource(R.id.image, R.drawable.ic_launcher); 
contentView.setTextViewText(R.id.title, title); 
contentView.setTextViewText(R.id.text, msg); 
notification.contentView = contentView; 

Intent notificationIntent = new Intent(this, HomeActivity.class); 
PendingIntent contentIntent = PendingIntent.getActivity(this,randomNo, notificationIntent, 0); 

Но проблема в том, 1.При приложение оленья кожа работает, уведомление приходит, но это случаи экран мигать (becoz я называю это с помощью намерения). 2.i хочет использовать тот же класс для нескольких условий и перенаправлять его на различные действия (в настоящее время я не могу изменить намерение на другую деятельность на основе condtiop).

+0

Пожалуйста, объясните для голосования –

+0

Возможно, потому что непонятно, что вы просите. – Rohit5k2

+0

его простой. Я хочу, чтобы push-уведомление не было в автономном режиме в android –

ответ

2

1) Правильный способ отправить уведомление будет mNotificationManager.notify(...) как здесь:

private void sendNotification(String message, String title, int id) { 
    Intent intent = new Intent(this, HomeActivity.class); 
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, 
    intent, PendingIntent.FLAG_ONE_SHOT); 

    Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
      .setSmallIcon(R.drawable.ic_stat_icon) 
      .setContentTitle(title) 
      .setContentText(message) 
      .setAutoCancel(true) 
      .setSound(defaultSoundUri) 
      .setContentIntent(pendingIntent); 

    NotificationManager notificationManager = 
      (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

    notificationManager.notify(id /* ID of notification */, 
      notificationBuilder.build()); 
} 

2) Вы можете заменить HomeActivity.class на переменную, которая дана в вашем конструкторе класса или какой-либо метод в качестве параметра: Class<?> cls и просто используйте Intent notificationIntent = new Intent(this, cls);

+0

спасибо за ваш ответ. могу ли я узнать, как передать класс из другого действия в этот метод? –

+0

В настоящее время я могу отправить как private void sendNotification (String message, String title, int id, контекст контекста) –

+0

просто использовать 'sendNotification (String message, String title, int id, Class cls, контекст контекста) ' –