Hello!
Searching about this issue, I've found the following:
http://stackoverflow.com/questions/18276355/how-to-keep-a-foreground-app-running-24-7
I would like to ask you if this is applicable in B4A and of course, if anyone has implemented it and it works!
The content of the above URL is:
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
The above code has also the "option" to force the Screen to stay always on! Of course you will need the following permissions:
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
and do not also forget to register your service:
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Thank you in advance!
			
			Searching about this issue, I've found the following:
http://stackoverflow.com/questions/18276355/how-to-keep-a-foreground-app-running-24-7
I would like to ask you if this is applicable in B4A and of course, if anyone has implemented it and it works!
The content of the above URL is:
- If you want an external app use: Autostart and StaY!
 
 
- If you want to do this programmatically you can use a service that polls every "x" milliseconds to see if your app is in the foreground. If it is not, it will start/bring your app in the foreground. Do it like this:
			
				B4X:
			
		
		
		public class PersistService extends Service {
    private static final int INTERVAL = 3000; // poll every 3 secs
    private static final string YOUR_APP_PACKAGE_NAME = "YOUR_APP_PACKAGE_NAME";
    private static boolean stopTask;
    private PowerManager.WakeLock mWakeLock;
    @Override
    public void onCreate() {
        super.onCreate();
        stopTask = false;
        // Optional: Screen Always On Mode!
        // Screen will never switch off this way
        mWakeLock = null;
        if (settings.pmode_scrn_on){
            PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
            mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "a_tag");
            mWakeLock.acquire();
        }
        // Start your (polling) task
        TimerTask task = new TimerTask() {
            @Override
            public void run() {
                // If you wish to stop the task/polling
                if (stopTask){
                    this.cancel();
                }
                // The first in the list of RunningTasks is always the foreground task.
                RunningTaskInfo foregroundTaskInfo = activityManager.getRunningTasks(1).get(0);
                String foregroundTaskPackageName = foregroundTaskInfo .topActivity.getPackageName();
                // Check foreground app: If it is not in the foreground... bring it!
                if (!foregroundTaskPackageName.equals(YOUR_APP_PACKAGE_NAME)){
                    Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage(YOUR_APP_PACKAGE_NAME);
                    startActivity(LaunchIntent);
                }
            }
        };
        Timer timer = new Timer();
        timer.scheduleAtFixedRate(task, 0, INTERVAL);
    }
    @Override
    public void onDestroy(){
        stopTask = true;
        if (mWakeLock != null)
            mWakeLock.release();
        super.onDestroy();
    }
}
			
				B4X:
			
		
		
		<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
			
				B4X:
			
		
		
		<service android:name="YOURPACAKGE.PersistService"
     android:enabled="true"/>Thank you in advance!
 
				 
 
		 
 
		 
 
		 
 
		 
 
		