Переход на главный экран программно


Я хочу перейти на домашний экран программно в Android, когда пользователь нажимает на кнопку. Как это можно сделать?

5 69

5 ответов:

вы можете сделать это через намерение.

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);

это намерение запустит приложение запуска, которое определил пользователь. Будьте осторожны с этим, потому что это будет выглядеть ваше приложение разбился, если пользователь не ожидает этого.

Если вы хотите, чтобы это построить кнопку выхода из вашего приложения, пожалуйста, прочитайте эту статью на кнопки выхода для Android

одна линия решение

moveTaskToBack(true); //activity.moveTaskToBack(true);

он будет вести себя как дома нажимается кнопка

Януша!--5--> это здорово.

единственное, что я хочу добавить, что немного слишком долго для комментария, это то, что вы можете перейти на главный экран, не имея ссылки на текущую деятельность.

код Януша должен быть вызван из действия или фрагмента из-за startActivity(),

чтобы обойти это, вы можете сохранить статическую ссылку на контекст вашего приложения в файле приложения:

public class YourApplication extends Application
{

    private static Context mAppContext;

    public void onCreate()
    {
        super.onCreate();
        ...
        YourApplication.mAppContext = getApplicationContext();
    }

    public static Context getContext()
    {
        return mAppContext;
    }

}

Теперь вы можете отправить пользователю на главный экран устройства из любого класса в вашем приложении, а не только действия, фрагменты или другие классы со ссылкой на текущую деятельность (вы можете решить, хорошо это или плохо):

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
YourApplication.getContext().startActivity(startMain);

С Android разработчик сайт

вот некоторые примеры других операций, которые вы можете указать в качестве намерений, используя эти дополнительные параметры:

* ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.

Я знаю, что это немного поздно, но я также столкнулся с той же проблемой, и вот как я ее решил. Возвращаясь к своему MainActivity вам нужно добавить флаги выхода Activity

    final Intent mainActivity = new Intent(this, MainActivity.class);
    mainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    mainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);

теперь, когда вы нажали кнопку назад, будучи MainActivity активный, он перейдет на главный экран.