我目前正在研究如何创建浮动前景气泡聊天服务。
但是,我注意到我试图使用的所有库都不适用于API-28。
我相信这是由于here in the Android docs提到的新限制。
它基本上表明,如果我正在调用一个在前台显示事物的服务:
我必须打电话给startForegroundService()
而不是startService()
。
此外,它指出:
“系统创建服务后,应用程序有五秒钟的时间来调用服务的startForeground()
方法,以显示新服务的用户可见通知。”
我相信这可能是我无法让这些前景聊天库工作的原因。
有人可能提供一个我应该如何实现这些的例子吗?
谢谢,麻烦您了!
@Override
public void onCreate() {
mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
// Android O requires a Notification Channel.
if (Build.VERSION.SDK_INT >= 26) {
CharSequence name = getString(R.string.app_name);
// Create the channel for the notification
@SuppressLint("WrongConstant")
NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, NotificationManager.IMPORTANCE_LOW);
// Set the Notification Channel for the Notification Manager.
if (notificationManager != null) {
notificationManager.createNotificationChannel(mChannel);
}
startForegroundService(new Intent(ForegroundService.this, ForegroundService.class));
//We only need to call this for SDK 26+, since startForeground always has to be called after startForegroundService.
startForeground(NOTIFICATION_ID, getNotification());
}
else {
startService(new Intent(ForegroundService.this, ForegroundService.class));
}
此外,该项目是开始实现ForegroundService的良好基础:
https://github.com/googlesamples/android-play-location/tree/master/LocationUpdatesForegroundService