Don't start transport service in foreground

Start it on-deman instead.

This way, we don't need a foreground service and thus can target API 28
This commit is contained in:
Torsten Grote 2019-06-07 17:21:08 -03:00
parent 540147470d
commit 2037291f81
No known key found for this signature in database
GPG key ID: 3E5F77D92CF891FF
4 changed files with 16 additions and 12 deletions

View file

@ -1,9 +1,6 @@
package com.stevesoltys.backup; package com.stevesoltys.backup;
import android.app.Application; import android.app.Application;
import android.content.Intent;
import com.stevesoltys.backup.transport.ConfigurableBackupTransportService;
/** /**
* @author Steve Soltys * @author Steve Soltys
@ -12,10 +9,4 @@ public class Backup extends Application {
public static final int JOB_ID_BACKGROUND_BACKUP = 1; public static final int JOB_ID_BACKGROUND_BACKUP = 1;
@Override
public void onCreate() {
super.onCreate();
startForegroundService(new Intent(this, ConfigurableBackupTransportService.class));
}
} }

View file

@ -14,6 +14,7 @@ import android.widget.Toast;
import com.stevesoltys.backup.activity.backup.CreateBackupActivity; import com.stevesoltys.backup.activity.backup.CreateBackupActivity;
import com.stevesoltys.backup.activity.restore.RestoreBackupActivity; import com.stevesoltys.backup.activity.restore.RestoreBackupActivity;
import com.stevesoltys.backup.service.backup.BackupJobService; import com.stevesoltys.backup.service.backup.BackupJobService;
import com.stevesoltys.backup.transport.ConfigurableBackupTransportService;
import java.io.IOException; import java.io.IOException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@ -57,6 +58,9 @@ public class MainActivityController {
showChooseFolderActivity(parent, true); showChooseFolderActivity(parent, true);
} else { } else {
try { try {
// ensure that backup service is started
parent.startService(new Intent(parent, ConfigurableBackupTransportService.class));
Uri fileUri = createBackupFile(parent.getContentResolver(), folderUri); Uri fileUri = createBackupFile(parent.getContentResolver(), folderUri);
showCreateBackupActivity(parent, fileUri); showCreateBackupActivity(parent, fileUri);

View file

@ -4,6 +4,7 @@ import android.app.backup.BackupManager;
import android.app.backup.IBackupManager; import android.app.backup.IBackupManager;
import android.app.job.JobParameters; import android.app.job.JobParameters;
import android.app.job.JobService; import android.app.job.JobService;
import android.content.Intent;
import android.net.Uri; import android.net.Uri;
import android.os.RemoteException; import android.os.RemoteException;
import android.util.Log; import android.util.Log;
@ -11,6 +12,7 @@ import android.util.Log;
import com.google.android.collect.Sets; import com.google.android.collect.Sets;
import com.stevesoltys.backup.service.PackageService; import com.stevesoltys.backup.service.PackageService;
import com.stevesoltys.backup.service.TransportService; import com.stevesoltys.backup.service.TransportService;
import com.stevesoltys.backup.transport.ConfigurableBackupTransportService;
import com.stevesoltys.backup.transport.component.provider.ContentProviderBackupConfiguration; import com.stevesoltys.backup.transport.component.provider.ContentProviderBackupConfiguration;
import com.stevesoltys.backup.transport.component.provider.ContentProviderBackupConfigurationBuilder; import com.stevesoltys.backup.transport.component.provider.ContentProviderBackupConfigurationBuilder;
@ -44,6 +46,7 @@ public class BackupJobService extends JobService {
@Override @Override
public boolean onStartJob(JobParameters params) { public boolean onStartJob(JobParameters params) {
Log.i(TAG, "Triggering full backup"); Log.i(TAG, "Triggering full backup");
startService(new Intent(this, ConfigurableBackupTransportService.class));
try { try {
LinkedList<String> packages = new LinkedList<>(new PackageService().getEligiblePackages()); LinkedList<String> packages = new LinkedList<>(new PackageService().getEligiblePackages());
packages.removeAll(IGNORED_PACKAGES); packages.removeAll(IGNORED_PACKAGES);

View file

@ -1,16 +1,16 @@
package com.stevesoltys.backup.transport; package com.stevesoltys.backup.transport;
import android.app.Notification;
import android.app.Service; import android.app.Service;
import android.content.Intent; import android.content.Intent;
import android.os.IBinder; import android.os.IBinder;
import android.util.Log;
/** /**
* @author Steve Soltys * @author Steve Soltys
*/ */
public class ConfigurableBackupTransportService extends Service { public class ConfigurableBackupTransportService extends Service {
private static final int FOREGROUND_ID = 43594; private static final String TAG = ConfigurableBackupTransportService.class.getName();
private static ConfigurableBackupTransport backupTransport = null; private static ConfigurableBackupTransport backupTransport = null;
@ -26,11 +26,17 @@ public class ConfigurableBackupTransportService extends Service {
@Override @Override
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
startForeground(FOREGROUND_ID, new Notification.Builder(this).build()); Log.d(TAG, "Service created.");
} }
@Override @Override
public IBinder onBind(Intent intent) { public IBinder onBind(Intent intent) {
return getBackupTransport().getBinder(); return getBackupTransport().getBinder();
} }
@Override
public void onDestroy() {
super.onDestroy();
Log.d(TAG, "Service destroyed.");
}
} }