python-for-android icon indicating copy to clipboard operation
python-for-android copied to clipboard

Improve process for stopping python

Open dbnicholson opened this issue 2 years ago • 0 comments

Checklist

  • [x] the issue is indeed a bug and not a support request
  • [x] issue doesn't already exist: https://github.com/kivy/python-for-android/issues
  • [ ] I have a short, runnable example that reproduces the issue
  • [x] I reproduced the problem with the latest development version (p4a.branch = develop)
  • [x] I used the grave accent (aka backticks) to format code or logs when appropriated

Versions

  • Python: 3.9
  • OS: Linux
  • Kivy: N/A
  • Cython: N/A
  • OpenJDK: 11

Description

Right now the way the Activity and Service classes stop python is to kill the whole process. That's a very heavy handed way to stop the python thread since it prevents the application taking any action when it has to stop.

I think an one way to do this would be to define a custom python exception and raise it in the python interpreter. The application could catch the exception, perform any actions it needs, and then return gracefully. From the Java side, it would run this via the JNI from a different thread than python is running in. In that case, I believe you could use one of these two mechanisms to raise the exception in the python main thread.

dbnicholson avatar May 31 '22 16:05 dbnicholson