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

有帮助吗?

解决方案

我的本能告诉我,我需要一项远程服务,该服务具有不断运行的广播接收器

不。我这样说,因为:

  • 只有一个应用程序,因此不需要“远程”服务
  • “具有不断运行的广播接收器的服务”是一个非常糟糕的主意,因为用户会用任务杀手攻击您,即使他们不这样做,Android也会终止您的服务,无论如何都是浪费空间

利用 BroadcastReceivers 在您的清单中注册,以获取可能随时发生的广播,因为即使您的应用程序没有其他运行,它们也将获得控制。使用 IntentService 对于那些人需要的任何“繁重的举重” BroadcastReceivers, , 作为 BroadcastReceiver 获得控制(在 onReceive())在主应用程序线程上,因此应尽可能少的工作。另外,使用 AlarmManager 发出信号a BroadcastReceiver (或者,可能是您的 IntentService)提出一个 Notification 对于您每天一次的活动。

另外,请注意,您无法“监视...传出...文本”,而“监视...传入...文本”要求您使用无证件的Android功能。尽管 大概 android.provider.Telephony 不会消失,您只需要意识到所涉及的风险即可。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top