android - Network Changed Broadcast Receiver 在一加手机中不执行

标签 android broadcastreceiver

我有一个 BroadcastReciever 名称 NetworkReciver.java,它在 Internet 连接或断开连接时执行。而且效果很好。

但是当应用程序从最近的应用程序关闭时,NetworkReciver.java 不会在一加 6 手机中执行,而它在三星手机中可以正常工作。

我不明白为什么 One Plus 设备中的行为不同

我的代码:

list

  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


  <receiver android:name=".NetworkReciever" >
       <intent-filter>
          <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
       </intent-filter>
  </receiver>

网络接收者.java:

  public class NetworkReciever extends BroadcastReceiver 
  {

       @Override
     public void onReceive(Context context, Intent intent)
     {
            Log.i("TAG", "Network REceiver Executed");
     }
}

问题:

当应用从 One Plus 设备中的最近应用关闭时,NetworkReciever 不会执行。

最佳答案

从 Android N 开始,系统不会发送 CONNECTIVITY_ACTION 广播给针对 N+ 的应用程序的 list 接收者。

通过 Context.registerReceiver() 注册的显式 BroadcastReceivers 继续接收这些广播。

解决方案:参见ConnectivityManager.CONNECTIVITY_ACTION deprecated

关于android - Network Changed Broadcast Receiver 在一加手机中不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51797699/

相关文章:

java - 无法添加窗口 - token null 不适用于广播接收器 OnReceive 内的应用程序

Android - sendOrderedBroadcast 帮助

android - 如何将 Google Play Developer API 版本更新到 v3?

android - SQLite - 保存更改的最快方法

android - Unity android构建错误: INSTALL_FAILED_VERSION_DOWNGRADE

android - 有没有办法使用 PagingDataAdapter 找到项目并滚动到该 View ?

java - 安卓 3.1 : Unit Testing a Class that Request User Permissions

android - BroadCastReceiver 监听来电并在时间间隔之间工作

android - 广播接收器的内存成本是多少?

android - 当发生 Broadcastreceiver 超时时,调试器在调试期间断开连接