Evet, bu mümkün.
Service.startForeground() imzasına bir göz attığımızda, bildirimin her iki bildirimini de & bildirimini (see documentation) kabul eder. Bu nedenle, birden fazla ön plan hizmetleri için yalnızca tek bir bildirime sahip olmak istiyorsak, bu hizmetlerin aynı bildirimi & bildirim kimliğini paylaşması gerekir.
Aynı bildirimi almak için singleton şablonunu kullanabiliriz & Bildirim kimliği. Bizim ön plan hizmetlerde bu sınıfını kullanabilirsiniz,
public class NotificationCreator {
private static final int NOTIFICATION_ID = 1094;
private static Notification notification;
public static Notification getNotification(Context context) {
if(notification == null) {
notification = new NotificationCompat.Builder(context)
.setContentTitle("Try Foreground Service")
.setContentText("Yuhu..., I'm trying foreground service")
.setSmallIcon(R.mipmap.ic_launcher)
.build();
}
return notification;
}
public static int getNotificationId() {
return NOTIFICATION_ID;
}
}
Böylece
NotificationCreator.java: İşte örnek uygulamasıdır.
MyFirstService.java
public class MySecondService extends Service {
@Override
public void onCreate() {
super.onCreate();
startForeground(NotificationCreator.getNotificationId(),
NotificationCreator.getNotification(this));
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
Sadece bu hizmetleri çalıştırmayı
public class MyFirstService extends Service {
@Override
public void onCreate() {
super.onCreate();
startForeground(NotificationCreator.getNotificationId(),
NotificationCreator.getNotification(this));
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
MySecondService.java: Mesela biz MyFirstService.java & MySecondService.java var. İşte bu kadar! Birden çok ön plan hizmetleri için tek bir bildiriminiz var;)!
Android'de iki bildirim ne demektir? –
@Pramod Service'de startForeground yöntemini kullanırken, android sistemi şu anda çalışan Servis hakkında bildirim ayarlar. iki servis kullanıyorum. ve her iki sınıfta startForeground yöntemini kullanın. –
Bir seçenek, 2 hizmeti tek bir servise birleştirmektir. Bunun, soruyu yanıtlamadığını biliyorum. Ancak, her iki hizmetin de birlikte başlamasına ve durdurulmasına verilen bir seçenek olabilir. – Madushan