Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7610791
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 31, 20262026-05-31T01:30:13+00:00 2026-05-31T01:30:13+00:00

I have an Android application that is binding to a persistent service (once started

  • 0

I have an Android application that is binding to a persistent service (once started with startService()).

The service is an integral part of the application and thus is used in almost every Activity. Hence I want to bind to the service just once (instead of binding/unbinding in every Activity) and keep the binding during the lifetime of my application.

I’ve extended from Application and bind to the service in Application#onCreate(). However I now have the problem that I don’t know when my application exists since Application#onTerminate() is never called, see JavaDoc:

This method is for use in emulated process environments. It will never
be called on a production Android device, where processes are removed
by simply killing them; no user code (including this callback) is
executed when doing so.

So how do I cleanly unbind from a service bound in Application?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-31T01:30:14+00:00Added an answer on May 31, 2026 at 1:30 am

    I solved this problem by counting the references to the service binding in the Application. Every Activity has to call acquireBinding() in their onCreate() methods and call releaseBinding() in onDestroy(). If the reference counter reaches zero the binding is released.

    Here’s an example:

    class MyApp extends Application {
        private final AtomicInteger refCount = new AtomicInteger();
        private Binding binding;
    
        @Override
        public void onCreate() {
            // create service binding here
        }
    
        public Binding acquireBinding() {
            refCount.incrementAndGet();
            return binding;
        }
    
        public void releaseBinding() {
            if (refCount.get() == 0 || refCount.decrementAndGet() == 0) {
                // release binding
            }
        }
    }
    
    // Base Activity for all other Activities
    abstract class MyBaseActivity extend Activity {
        protected MyApp app;
        protected Binding binding;
    
        @Override
        public void onCreate(Bundle savedBundleState) {
            super.onCreate(savedBundleState);
            this.app = (MyApp) getApplication();
            this.binding = this.app.acquireBinding();
        }
    
        @Override
        public void onDestroy() {
            super.onDestroy();
            this.app.releaseBinding();
        }
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a Web Service and an Android application that uses this web service.
In my Android app I have a service that is started via AlarmManager. I
I have android application and service that runs in separate process. Application and service
I have a service running in my Android application which contains a HashMap that
We have an android application that we're trying to use for web-service communication. We
I have an Android application that connects to Facebook to request authorization of an
I want to build an notepad-style application on android that will have syntax highlighting.
I have an android application that hits the WebView and displays the content. But
I have an android application that starts an activity and is running well. I
I have an Android application that I've been working on, and it's implemented using

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.