android - 1小时后重启服务

标签 android android-service android-wake-lock

我的应用程序中有一个用于检测 wifi 热点的后台服务。他运行良好,但是当设备进入休眠模式时,该服务将重新启动。我已经配置了 Wake Lock 和 Wifi Lock。

我的代码:(创建服务)

public void onCreate(){
    super.onCreate();
    Settings.System.putInt(getContentResolver(),
    Settings.System.WIFI_SLEEP_POLICY, 
    Settings.System.WIFI_SLEEP_POLICY_NEVER);

    wm = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
    wifiLock = wm.createWifiLock(WifiManager.WIFI_MODE_FULL, "SD1xWifi");
    wifiLock.acquire();

    mgr = (PowerManager)getSystemService(Context.POWER_SERVICE);
    wakeLock = mgr.newWakeLock(PowerManager.FULL_WAKE_LOCK, "SD1x");
    wakeLock.acquire();
}

我的代码:(启动服务)

public void onStart(Intent i, int x){
    super.onStart(i, x);
    Log.i("TesteWifi", "Find spots wifi started");
    try{
        wm.startScan();
        timer.scheduleAtFixedRate(new mainTask(), 0, 1000);
    }catch(Exception e){
        e.printStackTrace();
        Log.i("TesteWifi", "Error on start service find wifi");
    }
}

我的代码:(TimerTask)

 private class mainTask extends TimerTask {

        @Override
        public void run() {
             // ...timertask processes...
        }

我的代码:(服务在 MainActivity 中启动)

try {
    startService(obj.getServiceAutoCheckin());
} catch (Exception e) {
    Log.i("Services", "ERRO: " + e.getMessage());
}

为什么我的服务重启了?

最佳答案

使用广播接收器从服务中获取服务 Intent 。

关于android - 1小时后重启服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16197038/

相关文章:

android - 在android中的按钮上设置图像?

java - 如何延迟 onCreateOptionsMenu(Menu menu)?

android - 使用 LruCache 中的图像快速滚动 viewPager

android - 保证 android 继续检索传感器数据

Android - 唤醒和解锁设备

android - 我的华为杀死了我的 wakelock android 应用程序

android - Android 中的 Mockito 错误 : java. lang.ClassNotFoundException : android. os.Parcelable

android - Android 服务实例是否被重用?

android - 从前台服务观察 LiveData

android - 以打瞌睡模式启动前台服务