1

我正在编写一个具有标准活动的 android 应用程序,但还需要始终监控传入/传出的呼叫和文本。此外,该应用程序需要每天通知用户一次信息,而无需打开活动。它通知用户的信息存储在数据库中,因此无需与活动进行通信。我已经研究了一个星期,但仍然无法决定如何去做。我的直觉告诉我,我需要一个具有持续运行的广播接收器的远程服务,但我看到的每个远程服务示例都过于复杂。谁能帮助我更好地了解我需要采取哪些步骤?提前致谢。

4

1 回答 1

2

我的直觉告诉我我需要一个远程服务,它有一个不断运行的广播接收器

不。我这么说是因为:

  • 只有一个应用程序,因此不需要“远程”服务
  • “具有持续运行的广播接收器的服务”是一个非常糟糕的主意,因为用户会用任务杀手攻击你,即使他们没有,Android 最终还是会终止你的服务,因为这是浪费空间

在您的清单中注册用于BroadcastReceivers随时可能发生的广播,因为即使您的应用程序没有其他任何内容正在运行,它们也将获得控制权。使用 anIntentService来完成那些需要的任何“繁重的工作” BroadcastReceivers,因为在主应用程序线程上BroadcastReceiver获得控制(in onReceive()),因此应该尽可能少地做工作。此外,用于AlarmManager发出信号 a BroadcastReceiver(或者,可能是您的IntentServiceNotification为您的每日一次的事件提出 a 。

另外,请注意,您无法“监视...传出...文本”,而“监视...传入...文本”需要您使用 Android 的未记录功能。虽然可能 android.provider.Telephony不会消失,但您只需要意识到所涉及的风险。

于 2010-12-26T00:43:09.560 回答