Please implement the option of background processing

Basically, as the title says.
Currently, the user needs to have the app open at the forefront to allow processing of scans. This can take significant time (we’re speaking of 10+ minutes even for less complex objects) and also the device will warm up a lot, all the while it being useless for any other task. I would love to have an option to have the app process the data in the background even if it takes a bit more time. It would allow users to switch apps or leave device unattended to allow processing. This would also avoid issues with time spent and processing power going to trash if the user accidentaly hits a home button, for example.

Please let me know your thoughts!

2 Likes

one more thought: include a battery check&warning for the user, e.g. do not allow processing under 30% and warn user if they want to process something and battery is <50%

1 Like

Hello! I will suggest this feature request to the team to be considered for a future update. There’s no estimated timeline for when this feature might be released, however, if it does get released, you can read more about it in the “What’s New” section of the Scaniverse app.

For more general information and frequently asked questions, be sure to visit Scaniverse’s support page here. Alternatively, if you have any other questions, be sure to let us know so we can assist you further. Thanks for reaching out!

Yes please!

1 Like

Try split screen on android

I can’t do that on my phone :roll_eyes:
While this sounds like a fair workaround, it’s not the same.

Afaik most android phones support split screen now.

Afaik android doesn’t allow the non foreground app to do much if anything. Because of user experience and security.

When I wrote performance measuring tools at meta, I ran into this problem. Since I had a rooted quest I could run sh scripts in the background to measure perf and trigger renderdoc captures @scaniverse I’m available

Apparently there is a third party app on iPhone for split screen.

Another option would be to let users have run the splat training on their home computer, so it’s still local processed, ideally an app running that checks an online queue

Another idea would be allowing the user to process a queue of today’s scans while the phone is plugged in over night

Yet another option is to carry a phone just for scanning, guess that’s ok if already have an old phone that’s capable.

they do, but my particular device seems bugged and it just doesn’t work. But thanks for the nudge, I need to look into it and sort it out.

correct, which is why I also said it will be acceptable if it takes more time, thus I suppose it’s better to give the user an informed choice they can make, regarding their own constraints.
The idea of computer processing is great!

Btw. I asked the machine for some recommendations and this is what it gave me:
To enable Android apps to perform computationally intensive tasks in the background, developers can utilize several strategies and tools provided by the Android framework. Here’s a structured overview of the most effective methods:

Background Processing Options

1. WorkManager

  • Best for Deferrable Tasks: WorkManager is ideal for tasks that can be deferred and do not require immediate execution. It efficiently manages task scheduling, constraints, and retries, making it suitable for tasks like syncing data or uploading files when network conditions are favorable 1 2.
  • Long-Running Tasks: WorkManager can handle long-running tasks that need to persist even if the app is closed or the device restarts 2.

2. JobIntentService

  • Immediate Background Tasks: For tasks that need to run immediately, JobIntentService allows for execution on a separate background thread while ensuring compatibility with older Android versions. This is useful for tasks that need to be completed one at a time 2.

3. Foreground Services

  • Ongoing Tasks: For continuous background operations, such as music playback or location tracking, Foreground Services are recommended. These services have a higher priority than standard background services and are less likely to be terminated by the system 24.
    4. AsyncTask (Deprecated)
  • Short Tasks: Although now deprecated, AsyncTask was previously used for short-lived background operations that required minimal interaction with the UI thread. Developers are encouraged to use alternatives like WorkManager or Kotlin Coroutines instead 5.

Best Practices for Background Tasks

  • Use Executors and Thread Pools: For managing multiple threads efficiently, developers can utilize Java’s Executor framework or Thread Pools to handle concurrent tasks without blocking the main thread 1.
  • Handle Constraints and Conditions: When implementing background tasks, it’s essential to consider factors such as battery life and network availability. WorkManager allows setting constraints to ensure tasks run under optimal conditions 2 5.
  • Optimize Resource Usage: Avoid excessive wake locks and background services that can drain battery life. Optimize your app to run efficiently under low-memory conditions by limiting unnecessary background activity 4.