在我的应用程序中,我有一个WiFi广播接收器,如果WiFi网络可用,它会发出一些动作。
问题是,我必须每天至少触发一次这些动作,假设用户一直在WiFi网络下,onReceive方法将永远不会被调用。
那么我怎样才能确保那里发生的事情每天至少发生一次呢?
public class WiFiReceiver extends BroadcastReceiver {
private Context context;
@Override
public void onReceive(Context context, Intent intent) {
this.context = context;
ConnectivityManager conMan = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = conMan.getActiveNetworkInfo();
if (netInfo != null && netInfo.getType() == ConnectivityManager.TYPE_WIFI) {
Log.d("asd", "WIFI");
// DO THE THING
} else {
Log.d("asd", "NO WIFI");
}
} // End of onReceive
在清单 <receiver android:name=".receivers.WiFiReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
我不想创建每天触发这些动作的警报。
我想到的一个想法是注册BroadcastReceiver不仅仅是CONNECTIVITY_CHANGE事件,例如电池相关的事件,实际上每天都被触发,并确保执行任何你需要的onReceive()方法