首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >以编程方式转到主屏幕

以编程方式转到主屏幕
EN

Stack Overflow用户
提问于 2010-09-16 15:22:12
回答 5查看 82.7K关注 0票数 77

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-09-16 16:41:10

您可以通过Intent完成此操作。

代码语言:javascript
复制
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);

此意图将启动用户定义的启动器应用程序。注意这一点,因为如果用户没有预料到这一点,这看起来就像您的应用程序崩溃了。

如果你想在你的应用程序中创建一个退出按钮,请阅读这篇关于安卓exit Buttons的文章

票数 177
EN

Stack Overflow用户

发布于 2012-03-16 03:50:18

Janusz's answer很棒。

我想补充的唯一一件事是,你可以在没有引用当前活动的情况下转到主屏幕,这对于评论来说有点太长了。

由于startActivity(),Janusz的代码需要从活动或片段中调用,

要解决此问题,您可以在应用程序文件中存储对应用程序上下文的静态引用:

代码语言:javascript
复制
public class YourApplication extends Application
{

    private static Context mAppContext;

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

    public static Context getContext()
    {
        return mAppContext;
    }

}

现在,您可以从应用程序中的任何类将用户发送到设备主屏幕,而不仅仅是活动、片段或引用当前活动的其他类(您可以决定这是一件好事还是坏事):

代码语言:javascript
复制
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
YourApplication.getContext().startActivity(startMain);
票数 11
EN

Stack Overflow用户

发布于 2019-07-12 12:42:42

代码语言:javascript
复制
startActivity((new Intent(Intent.ACTION_MAIN)).addCategory(Intent.CATEGORY_HOME).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3724509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档