If the service started with startService assumes that it runs in the same process as Activity,
Data interaction between services and Activity is done without complicated methods such as binding.
Can I use the Android.app.Application instance as a global variable?
In other words, if the service is running, does it always have a base application instance?
I don't understand the general manners of Android, so I may be saying something wrong, but
It would be very helpful if you could reply.
Thank you for your cooperation.
If the application component starts and the application does not have any other running components, the Android system starts a new Linux process for the application with a single thread to run.
Android Components,
Activity
BroadcastReceiver
ContentProvider
Service
When one of the works, the Android system starts the application process.The onCreate()
of the android.app.Application
instance is invoked.
Therefore,
If the service is running, is there always an application instance underlying it?
The answer to this question is "must exist."
However, since the process is killed by the OS, I think Application
should be built as a short-lived datastore with a thread-safe design.You can also read the same data, but not communicate.
You can have Intent
have data
in your Intent
while you can have data
in your Service
.
Conversely, Activity
cannot determine when the Service
process is finished (it is better to pass data in BroadcastReceiver
), and as mentioned above, Application
process is missing OS/code>.
© 2024 OneMinuteCode. All rights reserved.