当用户单击按钮时,我想在Android中以编程方式转到主屏幕。如何才能做到这一点?

有帮助吗?

解决方案

您可以通过 意图.

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);

按下主页按钮时,它将行为

Janusz的答案 是很棒的。

我要添加的唯一一件事,即评论太长了,您可以在没有参考当前活动的情况下进入主屏幕。

Janusz的代码需要从活动或碎片中调用 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.
startActivity((new Intent(Intent.ACTION_MAIN)).addCategory(Intent.CATEGORY_HOME).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));

我知道这有点晚了,但我也遇到了同样的问题,这就是我如何解决它。回到你的 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 活跃的,它将进入主屏幕。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top