Fix for crashes, made services more crash-resistant

pull/14/head
Tim Su 16 years ago
parent a820c2f9c8
commit 4a83d1fd1a

@ -15,6 +15,7 @@ import android.util.Log;
import com.timsu.astrid.R;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.utility.Preferences;
/**
@ -44,9 +45,13 @@ public class BackupService extends Service {
@Override
public void onStart(Intent intent, int startId) {
if (intent.getAction().equals(BACKUP_ACTION)) {
ContextManager.setContext(this);
startBackup(this);
try {
if (intent.getAction().equals(BACKUP_ACTION)) {
ContextManager.setContext(this);
startBackup(this);
}
} catch (Exception e) {
PluginServices.getExceptionService().reportError("backup-bg-sync", e); //$NON-NLS-1$
}
}

@ -53,6 +53,7 @@ public class ProducteevBackgroundService extends Service {
if(ProducteevUtilities.INSTANCE.isOngoing())
return;
PluginServices.getTaskService();
new ProducteevSyncProvider().synchronize(context);
}

@ -163,8 +163,8 @@ public class ProducteevSyncProvider extends SyncProvider<ProducteevTaskContainer
if(context instanceof Activity)
((Activity)context).startActivityForResult(intent, 0);
else {
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
preferences.setToken(null);
preferences.stopOngoing();
}
} else {
invoker.authenticate(email, password);

@ -53,6 +53,7 @@ public class MilkBackgroundService extends Service {
if(MilkUtilities.isOngoing())
return;
PluginServices.getTaskService();
new RTMSyncProvider().synchronize(context);
}

@ -36,21 +36,21 @@ import com.todoroo.astrid.common.SyncProvider;
import com.todoroo.astrid.model.Metadata;
import com.todoroo.astrid.model.Task;
import com.todoroo.astrid.rmilk.MilkLoginActivity;
import com.todoroo.astrid.rmilk.MilkLoginActivity.SyncLoginCallback;
import com.todoroo.astrid.rmilk.MilkPreferences;
import com.todoroo.astrid.rmilk.MilkUtilities;
import com.todoroo.astrid.rmilk.MilkLoginActivity.SyncLoginCallback;
import com.todoroo.astrid.rmilk.api.ApplicationInfo;
import com.todoroo.astrid.rmilk.api.ServiceImpl;
import com.todoroo.astrid.rmilk.api.ServiceInternalException;
import com.todoroo.astrid.rmilk.api.data.RtmAuth.Perms;
import com.todoroo.astrid.rmilk.api.data.RtmList;
import com.todoroo.astrid.rmilk.api.data.RtmLists;
import com.todoroo.astrid.rmilk.api.data.RtmTask;
import com.todoroo.astrid.rmilk.api.data.RtmTask.Priority;
import com.todoroo.astrid.rmilk.api.data.RtmTaskList;
import com.todoroo.astrid.rmilk.api.data.RtmTaskNote;
import com.todoroo.astrid.rmilk.api.data.RtmTaskSeries;
import com.todoroo.astrid.rmilk.api.data.RtmTasks;
import com.todoroo.astrid.rmilk.api.data.RtmAuth.Perms;
import com.todoroo.astrid.rmilk.api.data.RtmTask.Priority;
import com.todoroo.astrid.rmilk.data.MilkDataService;
import com.todoroo.astrid.rmilk.data.MilkNote;
import com.todoroo.astrid.service.AstridDependencyInjector;
@ -212,10 +212,14 @@ public class RTMSyncProvider extends SyncProvider<RTMTaskContainer> {
}
});
intent.putExtra(MilkLoginActivity.URL_TOKEN, url);
if(context instanceof Activity)
((Activity)context).startActivityForResult(intent, 0);
else
context.startActivity(intent);
else {
// can't synchronize until user logs in
MilkUtilities.setToken(null);
MilkUtilities.stopOngoing();
}
} else {
performSync();

Loading…
Cancel
Save