package org.protocoderrunner.apprunner; import android.app.Service; import android.content.Intent; import android.os.IBinder; import org.protocoderrunner.project.Project; import org.protocoderrunner.project.ProjectManager; import org.protocoderrunner.utils.MLog; //stopService //stopSelf public class AppRunnerService extends Service { private AppRunnerInterpreter interp; private final String TAG = "AppRunnerService"; private Project currentProject; @Override public int onStartCommand(Intent intent, int flags, int startId) { // Can be called twice interp = new AppRunnerInterpreter(this); interp.createInterpreter(false); String projectName = intent.getStringExtra(Project.NAME); String projectFolder = intent.getStringExtra(Project.FOLDER); currentProject = ProjectManager.getInstance().get(projectFolder, projectName); ProjectManager.getInstance().setCurrentProject(currentProject); MLog.d(TAG, "launching " + projectName + " in " + projectFolder); AppRunnerSettings.get().project = currentProject; String script = ProjectManager.getInstance().getCode(currentProject); interp.evalFromService(script); return Service.START_NOT_STICKY; } @Override public IBinder onBind(Intent intent) { // TODO for communication return IBinder implementation return null; } @Override public void onCreate() { super.onCreate(); // its called only once } }