Tag: 前台

如何在Android中更新前台服务的通知文本?

我有Android的前台服务设置。 我想更新通知文本。 我正在创build如下所示的服务。 如何更新在此前台服务中设置的通知文本? 更新通知的最佳做法是什么? 任何示例代码将不胜感激。 public class NotificationService extends Service { private static final int ONGOING_NOTIFICATION = 1; private Notification notification; @Override public void onCreate() { super.onCreate(); this.notification = new Notification(R.drawable.statusbar, getText(R.string.app_name), System.currentTimeMillis()); Intent notificationIntent = new Intent(this, AbList.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); this.notification.setLatestEventInfo(this, getText(R.string.app_name), "Update This Text", pendingIntent); startForeground(ONGOING_NOTIFICATION, this.notification); […]

前台服务正在被Android杀死

更新 : 我还没有find真正的解决scheme的问题。 我想到的是一种在丢失连接时自动重新连接到以前的蓝牙设备的方法。 这不是理想的,但似乎工作得很好。 我很想听到更多关于这方面的build议。 我和这个问题有很多相同的问题: 服务在保持唤醒locking的情况下被中止,并且在调用包括设备(Asus Transformer)在内的startForeground之后 ,停止服务之前的时间长度(30-45分钟),使用唤醒锁,使用startForeground(),以及在屏幕熄灭时应用程序处于打开状态时不会发生问题的事实。 我的应用程序与其他设备保持蓝牙连接,并在两者之间发送数据,所以它必须始终处于活动状态以侦听数据。 用户可以随意启动和停止服务,实际上这是我实现启动或停止服务的唯一方法。 一旦服务重新启动,与其他设备的蓝牙连接就会丢失。 根据链接问题的答案,startForeground()“减less了服务被杀死的可能性,但是并不妨碍它”。 我明白,是这样的,但是我已经看到了许多其他的应用程序没有这个问题的例子(例如塔斯克)。 我的应用程序的实用性将大大降低,无法运行服务,直到用户停止。 有什么办法可以避免这个? 我看到这在我的logcat每当服务停止: ActivityManager: No longer want com.howettl.textab (pid 32321): hidden #16 WindowManager: WIN DEATH: Window{40e2d968 com.howettl.textab/com.howettl.textab.TexTab paused=false ActivityManager: Scheduling restart of crashed service com.howettl.textab/.TexTabService in 5000ms 编辑:我也应该注意到,这似乎并没有发生在我连接到的其他设备:HTC Legend running Cyanogen 编辑:这是adb shell dumpsys activity services的输出: * ServiceRecord{40f632e8 com.howettl.textab/.TexTabService} intent={cmp=com.howettl.textab/.TexTabService} […]

如何启动Foreground()而不显示通知?

我想创build一个服务,并在前台运行。 大多数示例代码都有通知。 但我不想显示任何通知。 那可能吗? 你能举几个例子吗? 有没有其他的select? 我的应用服务正在做mediaplayer。 如何让系统不杀我的服务,除了应用程序自己杀死它 (如通过button暂停或停止音乐)。