我正在使用使用前台服务的应用程序。
为此,我从onStartCommand回调服务中调用startForeground(id,Notification)
。
我使用通知构建器来创建我的通知但是当我将它传递给startForeground时,只有我设置它时显示的滚动条文本,其他所有内容都变为默认,即标题显示“正在运行,而我已将其设置为”在线“
我在notification.Builder中使用setText和setInfo方法设置的任何内容都不会显示默认文本,例如“触摸以获取更多信息或停止应用程序”显示在其位置。
这是相关的代码:
服务:
private final int NOTIFICATION_ID=1;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this,"EDI: Core service Started" , Toast.LENGTH_LONG).show();
startForeground(NOTIFICATION_ID, CoreServiceNotification.getNotification(this, "EDI is online", "Online","Online and running","EDI just started"));
return super.onStartCommand(intent, flags, startId);
}
CoreServiceNotification:
public class CoreServiceNotification {
public static Notification getNotification(Context context,String title,String text,String info,String tickerText){
Notification.Builder notificationBuilder= new Notification.Builder(context);
notificationBuilder.setContentTitle(title);
notificationBuilder.setContentText(text);
notificationBuilder.setContentInfo(info);
notificationBuilder.setTicker(tickerText);
notificationBuilder.setLights(0x00ffff00, 1000, 0);
return notificationBuilder.build();
}
}
结果:
答案 0 :(得分:26)
我认为在创建通知时首先需要设置smallIcon。
Notification.Builder notificationBuilder= new Notification.Builder(context);
notificationBuilder.setSmallIcon(R.drawable.yourIcon);
// then set other staff...
这是来自Cousera Android类的另一个简单示例, Click here