14

Is it possible to send a activity into background programmatically in android?

I am creating a prank application that plays funny sounds after a specified time (input by the user). And I don't want the application to be visible when playing that sound and also the display should be dark.

neteinstein
  • 17,529
  • 11
  • 93
  • 123
Mithraa
  • 429
  • 2
  • 5
  • 17
  • can you give more details ? Why you want to send in background? – Paresh Mayani Feb 09 '11 at 12:05
  • I am creating a prank application that plays funny sounds after a specified time (input by the user). And i don't want the application to be visible when playing that sound and also the display should be dark. – Mithraa Feb 09 '11 at 12:10

4 Answers4

28

Yes.

You can use either:

boolean sentAppToBackground = moveTaskToBack(true);

if(!sentAppToBackground){
  Intent i = new Intent();
  i.setAction(Intent.ACTION_MAIN);
  i.addCategory(Intent.CATEGORY_HOME);
  this.startActivity(i);
}

More information here: http://developer.android.com/reference/android/app/Activity.html#moveTaskToBack(boolean)

Or simply:

Intent i = new Intent();
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
this.startActivity(i);

According to Romain Guy a Android Framework Engineer, "You cannot simulate a press on the Home key.". So beware...

Check: http://osdir.com/ml/Android-Developers/2010-03/msg01887.html

Updated this answer according to: moveTaskToBack(true) returns false always

Community
  • 1
  • 1
neteinstein
  • 17,529
  • 11
  • 93
  • 123
  • does'nt work as expected for me here:http://stackoverflow.com/questions/14473537/movetasktobacktrue-returns-false-always – Nezam Jan 23 '13 at 07:25
11

This function ultimately works for you

moveTaskToBack(true)
blackgreen
  • 34,072
  • 23
  • 111
  • 129
Daniel Nyamasyo
  • 2,152
  • 1
  • 24
  • 23
3

Maybe play the sound from a service instead?

ns476
  • 375
  • 1
  • 3
1

To expand on the answer by @ns476, the reason you should play it from a service is that any Activity that is no longer in the foreground can be killed at any time by the OS. Please review the activity lifecycle.

dave.c
  • 10,910
  • 5
  • 39
  • 62