【发布时间】:2018-01-19 11:25:02
【问题描述】:
我正在开发一个在服务器上执行登录的 Android 应用程序。只有在此登录后,网络才能访问 Internet。不活动 30 分钟后,互联网连接将丢失。 (这真的很烦人,这就是我试图自动化它的原因......)
所以想法是创建一个应用程序,用户(也就是我懒惰的自我)只输入一次他的凭据,并且在他的余生中,登录会在后台自动发生。
当我尝试使用最佳实践来避免电池耗尽时,我首先想到了登录必须满足的条件:
- 手机必须连接到 Wifi。
- wifi 有一个特定的名称(因为只有某些 Wifi 需要登录)
- wifi 没有互联网连接。
我想:使用BroadcastReceiver,收听CONNECTIVITY_ACTION,然后检查必要性。我阅读了有关清单注册接收器的最新更改,并使用了上下文注册的接收器,然后启动了JobService。但过了一段时间,应用程序不再接收这些操作。
由于Android Developer website 声明:
只要注册上下文有效,上下文注册的接收者就会接收广播。
我想知道上下文实际有效多长时间?这甚至是实现我的目标的正确方法吗?
【问题讨论】:
-
据我了解,上下文仅在上下文所有者(应用程序、活动或服务)有效之前有效。对于活动,假设调用 onDestroy 意味着上下文不再有效。
标签: android broadcastreceiver android-context