在Nougat中,当应用程序强制关闭时,无法检测网络连接更改

时间:2018-02-06 05:09:08

标签: android broadcastreceiver android-7.0-nougat android-7.1-nougat

我想在所有情况下检测网络更改(应用程序在后台,前台以及未运行时)。

我在我的应用程序中使用服务在后台进行一些同步过程。当设备连接到互联网时,使用CONNECTIVITY_ACTION接收器将启动后台同步过程。这正在下面的牛轧糖版本。

在Nougat下面,使用CONNECTIVITY_ACTION,我们可以在应用程序处于后台,前台甚至应用程序未运行时检测连接更改。

来自Nougat,来自文档:

“针对Android 7.0(API级别24)及更高版本的应用,如果他们在清单中声明其广播接收者,则不会收到CONNECTIVITY_ACTION广播。如果他们使用Context.registerReceiver()注册其BroadcastReceiver并且该上下文仍然会收到CONNECTIVITY_ACTION广播仍然有效。“

即使我从清单中删除了注册接收器并完成了手动注册并在Activity类中取消注册,我也无法在应用程序未运行时检测到广播。

我在我的活动中使用了以下代码,

const buildFreqDict = string =>
  string.split('').reduce((freqDict, char) => {
    freqDict[char] = (freqDict[char] || 0) + 1;
    return freqDict;
  }, {})

console.log(buildFreqDict("banana"))

0 个答案:

没有答案