Я сделал это Wi-Fi приемник, где я хочу выполнить действие, когда Wi-Fi включен ...Android Wi-Fi приемник вещания поздно ответ
public class WifiReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
WifiManager wManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(context);
if (isWifiEnabled(wManager)) {
new MyTask().execute();
}
}
public static boolean isWifiEnabled(WifiManager wifi) {
if (wifi==null) return false;
if (wifi.getWifiState()!= wifi.WIFI_STATE_ENABLED) return false;
return true;
}
}
... и это мой манифест для приемника .. .
<receiver android:enabled="true" android:name=".receiver.WifiReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
... но приемник сделать задачу слишком поздно (около 10-60 секунд или больше) от переключения Wi-Fi.
Где моя ошибка? Есть ли другой способ сделать это без использования Сервиса?
Вы можете попробовать STATE_CHANGE вместо WIFI_STATE_CHANGED? Я не на 100% уверен, что это сокращает время, но в моих приложениях я использую его, возможно, дайте ему попробовать. – PsyGik
Кроме того, можете ли вы публиковать журналы, где именно требуется время для выполнения задачи? – PsyGik
Получите системное намерение поздно, я думаю. Теперь я пытаюсь STATE_CHANGE –