From 78f5c81fc58b3293593511c319bba641697d838f Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 3 May 2018 15:22:31 +0300 Subject: add workaround for android 8.0 disallowing starting services in background --- .../main/java/org/fox/ttrss/tasker/TaskerReceiver.java | 18 ++++++++++++++---- .../java/org/fox/ttrss/widget/WidgetUpdateService.java | 13 ++++++++----- 2 files changed, 22 insertions(+), 9 deletions(-) mode change 100644 => 100755 org.fox.ttrss/src/main/java/org/fox/ttrss/tasker/TaskerReceiver.java (limited to 'org.fox.ttrss/src/main/java') diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/tasker/TaskerReceiver.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/tasker/TaskerReceiver.java old mode 100644 new mode 100755 index 0bac722a..52c600bf --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/tasker/TaskerReceiver.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/tasker/TaskerReceiver.java @@ -4,6 +4,7 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.os.Build; import android.os.Bundle; import android.preference.PreferenceManager; import android.util.Log; @@ -43,8 +44,12 @@ public class TaskerReceiver extends BroadcastReceiver { OfflineDownloadService.class); intent.putExtra("sessionId", sessionId); intent.putExtra("batchMode", true); - - fContext.startService(intent); + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + fContext.startForegroundService(intent); + } else { + fContext.startService(intent); + } } break; case TaskerSettingsActivity.ACTION_UPLOAD: @@ -53,8 +58,13 @@ public class TaskerReceiver extends BroadcastReceiver { OfflineUploadService.class); intent.putExtra("sessionId", sessionId); intent.putExtra("batchMode", true); - - fContext.startService(intent); + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + fContext.startForegroundService(intent); + } else { + fContext.startService(intent); + } + } break; default: diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/widget/WidgetUpdateService.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/widget/WidgetUpdateService.java index efb0fcf1..d54d4422 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/widget/WidgetUpdateService.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/widget/WidgetUpdateService.java @@ -6,6 +6,7 @@ import android.content.Intent; import android.content.SharedPreferences; import android.net.ConnectivityManager; import android.net.NetworkInfo; +import android.os.Build; import android.os.Handler; import android.os.IBinder; import android.preference.PreferenceManager; @@ -43,10 +44,7 @@ public class WidgetUpdateService extends Service { // if no network is available networkInfo will be null // otherwise check if we are connected - if (networkInfo != null && networkInfo.isConnected()) { - return true; - } - return false; + return networkInfo != null && networkInfo.isConnected(); } @Override @@ -67,7 +65,12 @@ public class WidgetUpdateService extends Service { public void run() { Intent serviceIntent = new Intent(getApplicationContext(), WidgetUpdateService.class); serviceIntent.putExtra("retryCount", retryCount + 1); - startService(serviceIntent); + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + startForegroundService(serviceIntent); + } else { + startService(serviceIntent); + } } }, 3 * 1000); -- cgit v1.2.3