Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 有没有办法检测用户关闭WIFI或数据的确切时间?_Android_Broadcastreceiver_Android Wifi_Android Jobscheduler_Gcm Network Manager - Fatal编程技术网

Android 有没有办法检测用户关闭WIFI或数据的确切时间?

Android 有没有办法检测用户关闭WIFI或数据的确切时间?,android,broadcastreceiver,android-wifi,android-jobscheduler,gcm-network-manager,Android,Broadcastreceiver,Android Wifi,Android Jobscheduler,Gcm Network Manager,我搜索了一下,结果发现广播接收器不建议用于N以上的目标 我发现了GCMNetworkManager。而且它也被贬值了 我还检查了JobScheduler。然而,它的行为并不是我想要实现的 我能在这三种方法中实现的唯一方法是定期检查互联网状态 然而,我不想要它。我想要的是在用户关闭或打开它们时检测事件。然后,我想显示一个对话框,以确保用户再次打开它 制作iOS的学院说,他在iOS应用程序中使用了Observer。说也许安卓也一样 P> >有没有办法让它成为可能? < P>你可以考虑清单中的那些。

我搜索了一下,结果发现
广播接收器
不建议用于N以上的目标

  • 我发现了
    GCMNetworkManager
    。而且它也被贬值了

  • 我还检查了
    JobScheduler
    。然而,它的行为并不是我想要实现的
  • 我能在这三种方法中实现的唯一方法是定期检查互联网状态

    然而,我不想要它。我想要的是在用户关闭或打开它们时检测事件。然后,我想显示一个对话框,以确保用户再次打开它

    制作iOS的学院说,他在iOS应用程序中使用了
    Observer
    。说也许安卓也一样


    <> P> >有没有办法让它成为可能?

    < P>你可以考虑清单中的那些。

            <receiver android:name="receiver.NetworkChangeReceiver">
                <intent-filter>
                    <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
                    <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
                </intent-filter>
            </receiver>
    
  • 在您的
    活动中

  • 你可以考虑那些显而易见的东西。

            <receiver android:name="receiver.NetworkChangeReceiver">
                <intent-filter>
                    <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
                    <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
                </intent-filter>
            </receiver>
    
  • 在您的
    活动中

  • 从Nougat(7.x)开始,就有JobScheduler和JobService:老实说,我从来没有听说过“开发人员不想实现类”…这是一个很好的例子funny@emandt你是什么意思?我只是不想定期检查状态。但是在用户关闭或打开事件时检测事件。这两件事是不同的。事实上JobScheduler做的正是您需要的事情:它在内部检查“已注册事件”,然后在您的特殊情况发生时引发您的事件。它将使开发人员从循环、计时器、轮询操作等方面解脱出来……嗯,我明白了。所以,你的意思是,它不会“定期”运行,而是“立即”检测特定事件。怎么办?为什么不看官方指南?您会发现:“当满足声明的条件时,系统将在应用程序的JobService上执行此作业”。在谷歌上快速搜索就会发现这样一个链接:(所有这些都花了1分钟而不是整个周末的延迟/等待)从Nougat(7.x)开始,有JobScheduler和JobService:老实说,我从来没有听说过“开发者不想实现类”…这是一个很好的例子funny@emandt你是什么意思?我只是不想定期检查状态。但是在用户关闭或打开事件时检测事件。这两件事是不同的。事实上JobScheduler做的正是您需要的事情:它在内部检查“已注册事件”,然后在您的特殊情况发生时引发您的事件。它将使开发人员从循环、计时器、轮询操作等方面解脱出来……嗯,我明白了。所以,你的意思是,它不会“定期”运行,而是“立即”检测特定事件。怎么办?为什么不看官方指南?您会发现:“当满足声明的条件时,系统将在应用程序的JobService上执行此作业”。谷歌上的快速搜索显示了这个链接:(所有这些都花费了1分钟,而不是整个周末的延迟/等待)
    // Internet Check Receiver
    val intentFilter = IntentFilter("android.net.conn.CONNECTIVITY_CHANGE")
    this.registerReceiver(NetworkChangeReceiver(), intentFilter)