Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Programmatically change launcher activity

Is there a way I can change the activity that is launched when the application is started?

like image 363
user1613103 Avatar asked Oct 07 '12 00:10

user1613103


People also ask

How do I change the default program launcher programmatically?

Check whether your desired launcher activity is the default one (with the isMyAppLauncherDefault() from your question). This method temporarily enables FakeLauncherActivity , which leads to a change in the set of available launcher activities, which forces Android to forget its default launcher.

What is launcher activity?

Launcher Activities are the activities that can be launched for a given intent. For example, when you press an app icon on the home screen, the StartActivity intent starts the activity you have specified as the launcher activity.


1 Answers

I would recommend having a helper activity that is always designated as the launcher activity in your manifest. Then, in the onCreate of that activity you can do whatever determination you need to decide what app to start and then finish the helper activity. Example:

In your manifest (launcher activity):

<activity android:name=".HelperActivity" ... />

Then, in HelperActivity's onCreate:

@Override
public void onCreate(Bundle b){
    super.onCreate();
    //determine what activity you want
    startActivity(new Intent(this, NewActivity.class);
    finish();
}
like image 113
dennisdrew Avatar answered Sep 21 '22 09:09

dennisdrew