Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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 1小时后重新启动服务_Android_Android Service_Android Wake Lock - Fatal编程技术网

Android 1小时后重新启动服务

Android 1小时后重新启动服务,android,android-service,android-wake-lock,Android,Android Service,Android Wake Lock,我的应用程序中有一个用于检测wifi点的后台服务。他运行良好,但当设备进入睡眠模式时,该服务将重新启动。我已配置唤醒锁和Wifi锁 我的代码:(创建服务) 我的代码:(启动服务) 我的代码:(TimerTask) 我的代码:(服务已在MainActivity中启动) 为什么重新启动我的服务?使用广播接收器从服务获取服务意图。我解决了更改服务启动事件的问题。我通过onstart命令更改了事件。服务响应为“启动\粘贴” 您是如何开始这项服务的?您能给我看一下您的服务代码吗?可能您做错了-发布更多详细

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

我的代码:(创建服务)

我的代码:(启动服务)

我的代码:(TimerTask)

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


为什么重新启动我的服务?

使用广播接收器从服务获取服务意图。

我解决了更改服务启动事件的问题。我通过onstart命令更改了事件。服务响应为“启动\粘贴”


您是如何开始这项服务的?您能给我看一下您的服务代码吗?可能您做错了-发布更多详细信息(并更好地格式化)。首先,您应该使用alarm manager,而不是长期运行的服务:。你正在开锁,是吗?发布更多代码和更好的解释我会尝试你的解决方案。当回复某人时,添加@someone-我只是偶然看到这个-如果你发布更多代码和更好的解释,我也可以发布一些代码:)
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");
    }
}
 private class mainTask extends TimerTask {

        @Override
        public void run() {
             // ...timertask processes...
        }
try {
    startService(obj.getServiceAutoCheckin());
} catch (Exception e) {
    Log.i("Services", "ERRO: " + e.getMessage());
}