我正在编写一个具有标准活动的 android 应用程序,但还需要始终监控传入/传出的呼叫和文本。此外,该应用程序需要每天通知用户一次信息,而无需打开活动。它通知用户的信息存储在数据库中,因此无需与活动进行通信。我已经研究了一个星期,但仍然无法决定如何去做。我的直觉告诉我,我需要一个具有持续运行的广播接收器的远程服务,但我看到的每个远程服务示例都过于复杂。谁能帮助我更好地了解我需要采取哪些步骤?提前致谢。
问问题
479 次
1 回答
2
我的直觉告诉我我需要一个远程服务,它有一个不断运行的广播接收器
不。我这么说是因为:
- 只有一个应用程序,因此不需要“远程”服务
- “具有持续运行的广播接收器的服务”是一个非常糟糕的主意,因为用户会用任务杀手攻击你,即使他们没有,Android 最终还是会终止你的服务,因为这是浪费空间
在您的清单中注册用于BroadcastReceivers
随时可能发生的广播,因为即使您的应用程序没有其他任何内容正在运行,它们也将获得控制权。使用 anIntentService
来完成那些需要的任何“繁重的工作” BroadcastReceivers
,因为在主应用程序线程上BroadcastReceiver
获得控制(in onReceive()
),因此应该尽可能少地做工作。此外,用于AlarmManager
发出信号 a BroadcastReceiver
(或者,可能是您的IntentService
)Notification
为您的每日一次的事件提出 a 。
另外,请注意,您无法“监视...传出...文本”,而“监视...传入...文本”需要您使用 Android 的未记录功能。虽然可能 android.provider.Telephony
不会消失,但您只需要意识到所涉及的风险。
于 2010-12-26T00:43:09.560 回答