Android (API 28) - 在后台接收隐式意图
Android (API 28) - Receiving implicit intents in background
我对当前 Android 后台服务的可能性感到非常困惑,需要专家的帮助 :)
"xDrip" 应用程序正在通过一个(我猜是隐含的)意图使用操作名称 "com.eveningoutpost.dexdrip.BgEstimate" 广播其信息。我想收到这些意图。由于不允许将它们放入清单中,因此我在我的应用程序 class 的 onCreate() 方法中动态注册了它们。只要该应用程序是 运行(即使该应用程序未在屏幕上打开),它就可以很好地工作。但是,如果我在应用程序概述中将其滑开,即使我没有注销意图,它也不会再收到意图。
我现在的问题是:始终可靠地接收此(隐式)意图的最合适方式是什么?那么当用户在应用程序概览屏幕中将应用程序滑开时也是如此吗?
干杯!
This is working great as long as the app is running (even when the app is not open on screen).
更准确地说,只要您的流程是 运行。
But if I swipe it away in the app overview, it does not receive the intents any more even though I do not unregister the intent.
更准确地说,一旦您的进程停止,您就停止接收广播 运行。请注意,这会在您处于后台时自然发生,即使您没有手动将您的应用滑出概览屏幕也是如此。
What would be the most suitable way to receive this (implicit) intent reliably all the time?
从技术上讲,这是不可能的。
如果您使用前台服务,您将接近成功,从而使您的流程运行更长时间。然而:
用户仍然可以将应用滑出概览屏幕,这可能仍会停止您的服务并终止您的进程
即使是具有前台服务的进程也可能会在相当长的一段时间后Android自动终止
您的应用程序将一直消耗系统 RAM,用户可能会或可能不会喜欢
我对当前 Android 后台服务的可能性感到非常困惑,需要专家的帮助 :)
"xDrip" 应用程序正在通过一个(我猜是隐含的)意图使用操作名称 "com.eveningoutpost.dexdrip.BgEstimate" 广播其信息。我想收到这些意图。由于不允许将它们放入清单中,因此我在我的应用程序 class 的 onCreate() 方法中动态注册了它们。只要该应用程序是 运行(即使该应用程序未在屏幕上打开),它就可以很好地工作。但是,如果我在应用程序概述中将其滑开,即使我没有注销意图,它也不会再收到意图。
我现在的问题是:始终可靠地接收此(隐式)意图的最合适方式是什么?那么当用户在应用程序概览屏幕中将应用程序滑开时也是如此吗?
干杯!
This is working great as long as the app is running (even when the app is not open on screen).
更准确地说,只要您的流程是 运行。
But if I swipe it away in the app overview, it does not receive the intents any more even though I do not unregister the intent.
更准确地说,一旦您的进程停止,您就停止接收广播 运行。请注意,这会在您处于后台时自然发生,即使您没有手动将您的应用滑出概览屏幕也是如此。
What would be the most suitable way to receive this (implicit) intent reliably all the time?
从技术上讲,这是不可能的。
如果您使用前台服务,您将接近成功,从而使您的流程运行更长时间。然而:
用户仍然可以将应用滑出概览屏幕,这可能仍会停止您的服务并终止您的进程
即使是具有前台服务的进程也可能会在相当长的一段时间后Android自动终止
您的应用程序将一直消耗系统 RAM,用户可能会或可能不会喜欢