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 5929531
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 22, 20262026-05-22T14:26:01+00:00 2026-05-22T14:26:01+00:00

I noticed this behavior while developing a simple Android game which has 2 activities.

  • 0

I noticed this behavior while developing a simple Android game which has 2 activities.

The game has 2 activities, the first is a screen which allows the user to select the opponent type, level etc. and the second the actual game screen.
The second activity creates an object of a GameManager class which handles all the game processing.
This GameManager class also creates a CountDownTimer which it starts to prompt user input (on timeout the game is defaulted to the opponent).

I’ve noticed that if the user exits the second activity (returns to the first) and then launches a new game again, the previous timer is still running until completion.
I’ve handled this by explicitly cancelling the timer (from the onDestroy() of the second activity) as just setting the timerobject to ‘null’ did not cancel the timer.

However I’m curious as to why the previous timer was running even after my activity was exited the first time? Shouldn’t the GC have deleted all the objects instantiated by the second Activity (and whatever child objects it created) when it was exited? Would be great to know the reason behind the observed behavior?

TIA

  • 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-22T14:26:02+00:00Added an answer on May 22, 2026 at 2:26 pm

    Shouldn’t the GC have deleted all the objects instantiated by the second Activity (and whatever child objects it created) when it was exited?

    This isn’t how Garbage Collection works. The GC isn’t responsible for ‘deleting objects’ – it’s responsible for picking up ‘orphaned’ objects and freeing their resources. Even then, a GC isn’t guaranteed to get to all of the orphans in a timely manner.

    Further to that, any objects which may be ‘system’ objects and need to be released explicitly may never be released if your code doesn’t do it. Other issues with GC may include creating objects which other threads (other than the Activity which created them) may have a reference to.

    You mention your ‘timer’ but don’t explain what sort of class you are using for it. I suggest read up specifically about that class and see what the implications are for ceation/deletion (possibly explicit ‘release’ of resources).

    GC is a very grey area on any platform. With Android it’s normally pretty immediate but with the nature of the Activity life-cycle it’s very difficult to predict what will happen.

    In general make use of onCreate, onPause and onResume within Activities and also things like savedInstanceState and SharedPreferences to keep track of what is going on.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I don't know if anyone ELSE has noticed this, but I noticed the jQuery
I'm developing an application that looks mainly like this: while (true) { while (PeekMessage(&Msg,
While cleaning up some old php scripts I've noticed some weird behavior with require/include
Note: This might seem like a Super User question at first, but please read
I just recently noticed this behaviour. To put it shortly, it displays the commits
Noticed this today when a patch was submitted with the following line: lblCompletionTime.Text =
Just noticed this on OSX and I found it curious as I expected long
I noticed This question , but my question is a bit more specific. Is
I just noticed this about a week ago. I'm storing data about the current
I was browsing through the questions and noticed this: SELECT prodid, issue FROM Sales

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.