2017-07-25 23 views
0

私は現在あなた自身の通知を行うことができるアプリで働いています。どのようにでも(ほとんど)カスタマイズすることができます。通知へのデータの送信

私の問題は、メインアクティビティから通知サービスにデータを取得する方法がわかりません。

Intent startNotificationServiceIntent = new Intent(MainActivity.this, Notification.class); 
      startNotificationServiceIntent 
        .putExtra("Title", title) 
        .putExtra("Text", text) 
        .putExtra("Millis", millis) 
        .putExtra("IsImportant", isImportant); 

      startService(startNotificationServiceIntent); 

そして、これが今onStartCommandです:

これは私が今使っているテントは次のように見ている方法です

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    displayNotification(/*Currently empty*/); 
    stopSelf(); 
    return super.onStartCommand(intent, flags, startId); 
} 

そして、これはメソッドです(displayNotification)

private void displayNotification(String title, String text, long VibrationLongMillis, boolean isImportant) { 
    Intent notificationIntent = new Intent(this, MainActivity.class); 
    PendingIntent notificationPendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 

    NotificationCompat.Builder notification = new NotificationCompat.Builder(this) 
      .setContentTitle(title) 
      .setContentText(text) 
      .setSmallIcon(R.drawable.attention) 
      .setColor(getResources().getColor(R.color.colorPrimary)) 
      .setVibrate(new long[]{0, VibrationLongMillis, VibrationLongMillis, VibrationLongMillis}) 
      .setSound(uri) 
      .setContentIntent(notificationPendingIntent) 
      .setAutoCancel(true) 
      .setPriority(NotificationCompat.PRIORITY_DEFAULT) 
      .setStyle(new NotificationCompat.BigTextStyle().bigText(text)); 

    if (isImportant) { 
     notification.setPriority(NotificationCompat.PRIORITY_HIGH); 
    } 


    NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
    notificationManager.notify(NOTIFICATION_ID, notification.build()); 

} 
+0

どのようなデータを送信しますか?より具体的にしてください – ZeekHuge

答えて

0

通知を作成するために使用しているのは、 Intent(あなたが既にやっているように)あなたのサービスで次のように読む:

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    String title = intent.getStringExtra("Title"); 
    /* Do here the same for the other parameters */ 
    displayNotification(title, text, vibrationLongMillis, isImportant); 
    stopSelf(); 
    return super.onStartCommand(intent, flags, startId); 
} 
+0

それは完全に、あなたに感謝します。 – 2Simpel

関連する問題