commit 28/12/2024 13_08
This commit is contained in:
197
Objects/src/b4a/example/starter.java
Normal file
197
Objects/src/b4a/example/starter.java
Normal file
@@ -0,0 +1,197 @@
|
||||
package b4a.example;
|
||||
|
||||
|
||||
import anywheresoftware.b4a.BA;
|
||||
import anywheresoftware.b4a.objects.ServiceHelper;
|
||||
import anywheresoftware.b4a.debug.*;
|
||||
|
||||
public class starter extends android.app.Service{
|
||||
public static class starter_BR extends android.content.BroadcastReceiver {
|
||||
|
||||
@Override
|
||||
public void onReceive(android.content.Context context, android.content.Intent intent) {
|
||||
BA.LogInfo("** Receiver (starter) OnReceive **");
|
||||
android.content.Intent in = new android.content.Intent(context, starter.class);
|
||||
if (intent != null)
|
||||
in.putExtra("b4a_internal_intent", intent);
|
||||
ServiceHelper.StarterHelper.startServiceFromReceiver (context, in, true, anywheresoftware.b4a.ShellBA.class);
|
||||
}
|
||||
|
||||
}
|
||||
static starter mostCurrent;
|
||||
public static BA processBA;
|
||||
private ServiceHelper _service;
|
||||
public static Class<?> getObject() {
|
||||
return starter.class;
|
||||
}
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
mostCurrent = this;
|
||||
if (processBA == null) {
|
||||
processBA = new anywheresoftware.b4a.ShellBA(this, null, null, "b4a.example", "b4a.example.starter");
|
||||
if (BA.isShellModeRuntimeCheck(processBA)) {
|
||||
processBA.raiseEvent2(null, true, "SHELL", false);
|
||||
}
|
||||
try {
|
||||
Class.forName(BA.applicationContext.getPackageName() + ".main").getMethod("initializeProcessGlobals").invoke(null, null);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
processBA.loadHtSubs(this.getClass());
|
||||
ServiceHelper.init();
|
||||
}
|
||||
_service = new ServiceHelper(this);
|
||||
processBA.service = this;
|
||||
|
||||
if (BA.isShellModeRuntimeCheck(processBA)) {
|
||||
processBA.raiseEvent2(null, true, "CREATE", true, "b4a.example.starter", processBA, _service, anywheresoftware.b4a.keywords.Common.Density);
|
||||
}
|
||||
if (!true && ServiceHelper.StarterHelper.startFromServiceCreate(processBA, false) == false) {
|
||||
|
||||
}
|
||||
else {
|
||||
processBA.setActivityPaused(false);
|
||||
BA.LogInfo("*** Service (starter) Create ***");
|
||||
processBA.raiseEvent(null, "service_create");
|
||||
}
|
||||
processBA.runHook("oncreate", this, null);
|
||||
if (true) {
|
||||
if (ServiceHelper.StarterHelper.runWaitForLayouts() == false) {
|
||||
BA.LogInfo("stopping spontaneous created service");
|
||||
stopSelf();
|
||||
}
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void onStart(android.content.Intent intent, int startId) {
|
||||
onStartCommand(intent, 0, 0);
|
||||
}
|
||||
@Override
|
||||
public int onStartCommand(final android.content.Intent intent, int flags, int startId) {
|
||||
if (ServiceHelper.StarterHelper.onStartCommand(processBA, new Runnable() {
|
||||
public void run() {
|
||||
handleStart(intent);
|
||||
}}))
|
||||
;
|
||||
else {
|
||||
ServiceHelper.StarterHelper.addWaitForLayout (new Runnable() {
|
||||
public void run() {
|
||||
processBA.setActivityPaused(false);
|
||||
BA.LogInfo("** Service (starter) Create **");
|
||||
processBA.raiseEvent(null, "service_create");
|
||||
handleStart(intent);
|
||||
ServiceHelper.StarterHelper.removeWaitForLayout();
|
||||
}
|
||||
});
|
||||
}
|
||||
processBA.runHook("onstartcommand", this, new Object[] {intent, flags, startId});
|
||||
return android.app.Service.START_NOT_STICKY;
|
||||
}
|
||||
public void onTaskRemoved(android.content.Intent rootIntent) {
|
||||
super.onTaskRemoved(rootIntent);
|
||||
if (true)
|
||||
processBA.raiseEvent(null, "service_taskremoved");
|
||||
|
||||
}
|
||||
private void handleStart(android.content.Intent intent) {
|
||||
BA.LogInfo("** Service (starter) Start **");
|
||||
java.lang.reflect.Method startEvent = processBA.htSubs.get("service_start");
|
||||
if (startEvent != null) {
|
||||
if (startEvent.getParameterTypes().length > 0) {
|
||||
anywheresoftware.b4a.objects.IntentWrapper iw = ServiceHelper.StarterHelper.handleStartIntent(intent, _service, processBA);
|
||||
processBA.raiseEvent(null, "service_start", iw);
|
||||
}
|
||||
else {
|
||||
processBA.raiseEvent(null, "service_start");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void onTimeout(int startId) {
|
||||
BA.LogInfo("** Service (starter) Timeout **");
|
||||
anywheresoftware.b4a.objects.collections.Map params = new anywheresoftware.b4a.objects.collections.Map();
|
||||
params.Initialize();
|
||||
params.Put("StartId", startId);
|
||||
processBA.raiseEvent(null, "service_timeout", params);
|
||||
|
||||
}
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
if (true) {
|
||||
BA.LogInfo("** Service (starter) Destroy (ignored)**");
|
||||
}
|
||||
else {
|
||||
BA.LogInfo("** Service (starter) Destroy **");
|
||||
processBA.raiseEvent(null, "service_destroy");
|
||||
processBA.service = null;
|
||||
mostCurrent = null;
|
||||
processBA.setActivityPaused(true);
|
||||
processBA.runHook("ondestroy", this, null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public android.os.IBinder onBind(android.content.Intent intent) {
|
||||
return null;
|
||||
}
|
||||
public anywheresoftware.b4a.keywords.Common __c = null;
|
||||
public b4a.example.main _main = null;
|
||||
public static boolean _application_error(anywheresoftware.b4a.objects.B4AException _error,String _stacktrace) throws Exception{
|
||||
RDebugUtils.currentModule="starter";
|
||||
if (Debug.shouldDelegate(processBA, "application_error", false))
|
||||
{return ((Boolean) Debug.delegate(processBA, "application_error", new Object[] {_error,_stacktrace}));}
|
||||
RDebugUtils.currentLine=1179648;
|
||||
//BA.debugLineNum = 1179648;BA.debugLine="Sub Application_Error (Error As Exception, StackTr";
|
||||
RDebugUtils.currentLine=1179649;
|
||||
//BA.debugLineNum = 1179649;BA.debugLine="Return True";
|
||||
if (true) return anywheresoftware.b4a.keywords.Common.True;
|
||||
RDebugUtils.currentLine=1179650;
|
||||
//BA.debugLineNum = 1179650;BA.debugLine="End Sub";
|
||||
return false;
|
||||
}
|
||||
public static String _service_create() throws Exception{
|
||||
RDebugUtils.currentModule="starter";
|
||||
if (Debug.shouldDelegate(processBA, "service_create", false))
|
||||
{return ((String) Debug.delegate(processBA, "service_create", null));}
|
||||
RDebugUtils.currentLine=983040;
|
||||
//BA.debugLineNum = 983040;BA.debugLine="Sub Service_Create";
|
||||
RDebugUtils.currentLine=983044;
|
||||
//BA.debugLineNum = 983044;BA.debugLine="End Sub";
|
||||
return "";
|
||||
}
|
||||
public static String _service_destroy() throws Exception{
|
||||
RDebugUtils.currentModule="starter";
|
||||
if (Debug.shouldDelegate(processBA, "service_destroy", false))
|
||||
{return ((String) Debug.delegate(processBA, "service_destroy", null));}
|
||||
RDebugUtils.currentLine=1245184;
|
||||
//BA.debugLineNum = 1245184;BA.debugLine="Sub Service_Destroy";
|
||||
RDebugUtils.currentLine=1245186;
|
||||
//BA.debugLineNum = 1245186;BA.debugLine="End Sub";
|
||||
return "";
|
||||
}
|
||||
public static String _service_start(anywheresoftware.b4a.objects.IntentWrapper _startingintent) throws Exception{
|
||||
RDebugUtils.currentModule="starter";
|
||||
if (Debug.shouldDelegate(processBA, "service_start", false))
|
||||
{return ((String) Debug.delegate(processBA, "service_start", new Object[] {_startingintent}));}
|
||||
RDebugUtils.currentLine=1048576;
|
||||
//BA.debugLineNum = 1048576;BA.debugLine="Sub Service_Start (StartingIntent As Intent)";
|
||||
RDebugUtils.currentLine=1048577;
|
||||
//BA.debugLineNum = 1048577;BA.debugLine="Service.StopAutomaticForeground 'Starter service";
|
||||
mostCurrent._service.StopAutomaticForeground();
|
||||
RDebugUtils.currentLine=1048578;
|
||||
//BA.debugLineNum = 1048578;BA.debugLine="End Sub";
|
||||
return "";
|
||||
}
|
||||
public static String _service_taskremoved() throws Exception{
|
||||
RDebugUtils.currentModule="starter";
|
||||
if (Debug.shouldDelegate(processBA, "service_taskremoved", false))
|
||||
{return ((String) Debug.delegate(processBA, "service_taskremoved", null));}
|
||||
RDebugUtils.currentLine=1114112;
|
||||
//BA.debugLineNum = 1114112;BA.debugLine="Sub Service_TaskRemoved";
|
||||
RDebugUtils.currentLine=1114114;
|
||||
//BA.debugLineNum = 1114114;BA.debugLine="End Sub";
|
||||
return "";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user