java - 如何创建 dalvik 不会杀死的 android 服务?

标签 java android service foreground wakelock

在开始提问之前,我想先这样说:我知道强制服务永远运行是一个坏主意......我根本不在乎。

此应用程序不供消费者使用。它不会出现在应用程序商店中。仅供我使用。

好吧,我有这台未使用的运行 4.0.3 (ICS) 的 HTC Sensation,并且我已自愿将其交给本地一家剧院执行一项任务。任务是让它在演出需要时按提示响起。我们不想在其中插入 SIM 卡,因为有人可能会在演出期间意外调用不应该响铃的电话。

因此,我创建了一个虚假的电话应用程序,该应用程序通过 TCP 从服务器接收信号,我已将服务器设置为通过 LAN 向设备发送信号。现在我让监听器在服务中无限循环中运行。但是,我仍然遇到服务不响应 TCP 信号的情况。

如果一些 Android 专家能给我一些提示/技巧,让这项服务尽可能可靠,我会非常感激,除了好的/坏的编码技术之外,我想尽一切可能使这项服务无法被杀死。这款手机现在只有一项任务,那就是无论如何,始终监听传入的消息。

到目前为止我所做的事情:

创建了一个服务(并从该服务启动了一个单独的线程) 使用 startForeground(id, notification); 激活DeviceAdmin并创建唤醒锁

你们还能想到什么吗?

最佳答案

我想到的第一个想法是设置一个 AlarmManager,每 5 秒检查一次服务是否正在运行。 This describes a method to see whether a service is running 。 如果服务没有运行,您可以重新启动它。

使用此方法和 startForeground() 方法可能有效。

亲切的问候

关于java - 如何创建 dalvik 不会杀死的 android 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23940208/

相关文章:

java - native 和增量 id 生成器类型之间的区别

Android 模拟器闹钟崩溃

java - 解析特定的日期字符串格式

java - ReentrantLock 和条件变量

synchronized关键字的Java多线程用途

wcf - iis7 wcf : on local computer I get 401 - Unauthorized: Access is denied due to invalid credentials

ubuntu - getent passwd 用户名在启动时不返回任何内容

android - SequenceInputStream 不合并音频文件

android - 当应用程序在后台但用户没有点击收到的通知时如何处理消息

android - Android Activity/服务中的多个线程