Android 处理需要永远存在的服务的最佳方式是什么?还是有更好的方法

Android 处理需要永远存在的服务的最佳方式是什么?还是有更好的方法,android,Android,我有一个活动,从本地sqlite数据库中查找从UI输入的电话号码,该数据库显示号码的原始城市/州。该活动的一部分还包括一项服务,用于监听手机上的来电和传出电话。当打电话或来电时,它会在屏幕底部显示一条Toast消息,其中包含数据库中该号码的城市/州。据我所知,如果不让服务永远有效,就无法实现此功能。现在,我有一个警报设置,每小时运行一次,如果服务被终止,则重新启动服务。我记得有一个老应用程序就是这样工作的,叫做“未接来电”,它根据收到的信息(未接来电、短信、电子邮件等)更改了通知LED的颜色。我

我有一个活动,从本地sqlite数据库中查找从UI输入的电话号码,该数据库显示号码的原始城市/州。该活动的一部分还包括一项服务,用于监听手机上的来电和传出电话。当打电话或来电时,它会在屏幕底部显示一条Toast消息,其中包含数据库中该号码的城市/州。据我所知,如果不让服务永远有效,就无法实现此功能。现在,我有一个警报设置,每小时运行一次,如果服务被终止,则重新启动服务。我记得有一个老应用程序就是这样工作的,叫做“未接来电”,它根据收到的信息(未接来电、短信、电子邮件等)更改了通知LED的颜色。我的问题是,有没有更好的方法来做这件事?我知道让服务永远运行是非常不受欢迎的,但我看不到任何其他方法,除非我遗漏了什么


谢谢

你在上面对Evan的评论中所描述的正是我在自己的应用程序(一个叫MinuteWatch的小应用程序,没有人买)中监听来电和呼出电话的方式

传入呼叫没有广播意图,那么你还应该怎么做?我想这是因为来电至关重要,所以你不能延迟或以其他方式干扰来电,但我认为这会让你不得不接受无限的服务。这是我能想到的唯一一件特别不可挂的东西。即使是像每15分钟查看一次推特这样的事情,你也可以通过一个反复出现的闹钟来完成,而不必让服务挂在那里


即使Android团队不想要一个不注册的呼叫事件,我认为他们应该考虑把名字命名为CalrayAccess和CalpHyBand和CalpHyLoad,这至少会在事实之后通知你。你还应该如何建立一个备用的通话记录工具呢?

你在上面对Evan的评论中描述的正是我在自己的应用程序中如何做到的,该应用程序可以监听来电和呼出的电话(一个名为MinuteWatch的小应用程序,没有人购买)

传入呼叫没有广播意图,那么你还应该怎么做?我想这是因为来电至关重要,所以你不能延迟或以其他方式干扰来电,但我认为这会让你不得不接受无限的服务。这是我能想到的唯一一件特别不可挂的东西。即使是像每15分钟查看一次推特这样的事情,你也可以通过一个反复出现的闹钟来完成,而不必让服务挂在那里


即使Android团队不想要一个不注册的呼叫事件,我认为他们应该考虑把名字命名为CalrayAccess和CalpHyBand和CalpHyLoad,这至少会在事实之后通知你。您还应该如何构建备用呼叫日志工具?

您是在谈论Windows服务吗?@Dev问题被标记为“android”,所以可能不是。您不能在呼叫到达时使用意图启动通知程序吗?写一些东西来快速检索和显示数据库记录应该不难。为了捕捉传出呼叫,我在服务中使用了一个intent接收器。。。但我不知道有什么方法可以做到这一点。现在我必须使用:telephony=(TelephonyManager)this.getSystemService(Context.telephony_服务);电话.listen(phoneListener,PhoneStateListener.listen\u CALL\u STATE);其中“phoneListener”是一个扩展PhoneStateListener并重写“onCallStateChanged”的类,用于检测传入呼叫是否正在响铃/挂断/挂断等。这是您的评论在我头上飞过的声音。我对安卓API的理解非常模糊,不久前我在文档中跌跌撞撞地学到了“意图”一词。堆栈溢出似乎没有足够的Android开发人员来回答您的问题。您是否向列在上的Android应用程序开发人员邮件列表中的一个提出过此问题?您是在谈论Windows服务吗?@Dev此问题被标记为“Android”,所以可能不是。您不能在接到电话时使用意图来启动通知程序吗?写一些东西来快速检索和显示数据库记录应该不难。为了捕捉传出呼叫,我在服务中使用了一个intent接收器。。。但我不知道有什么方法可以做到这一点。现在我必须使用:telephony=(TelephonyManager)this.getSystemService(Context.telephony_服务);电话.listen(phoneListener,PhoneStateListener.listen\u CALL\u STATE);其中“phoneListener”是一个扩展PhoneStateListener并重写“onCallStateChanged”的类,用于检测传入呼叫是否正在响铃/挂断/挂断等。这是您的评论在我头上飞过的声音。我对安卓API的理解非常模糊,不久前我在文档中跌跌撞撞地学到了“意图”一词。堆栈溢出似乎没有足够的Android开发人员来回答您的问题。你有没有向上列出的安卓应用开发者邮件列表中的一个询问过这个问题?