以编程方式进入主屏幕
您可以通过Intent做到这一点。
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
此意向将启动用户已定义的启动器应用程序。请小心,因为如果用户不期望这会看起来像你的应用程序崩溃。
如果你想这从您的应用程序建立一个退出按钮,请阅读这篇文章exit Buttons在Android中
我读过,这是非常错误的应用程序。但为什么人们说呢?我知道我在哪里使用它。看起来这是我做我想做的唯一事情。那么这可以使用它吗? – Enigma 2012-11-19 07:05:04
对我来说最简单的事情是:'startActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME));' (FLAG_ACTIVITY_NEW_TASK似乎不是必要的)。 – Jonik 2013-12-20 18:58:08
这是一个较老的线程,返回到前一个活动的作品不起作用。什么属性呢? – portfoliobuilder 2014-09-25 18:49:14
下面是其他操作的一些例子,你可以为使用这些额外的参数意图注明:
* ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.
Janusz's answer是巨大的。
我想添加的唯一东西,对评论来说有点太长了,因为您可以在不参考当前活动的情况下进入主屏幕。
需要从一个活动或片段由于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);
我知道这是有点晚了,但我也遇到了同样的问题,在这里它的行为是怎么解决它。让我们再回到你的MainActivity
时需要您按下后退按钮是MainActivity
活动之一,从退出的Activity
final Intent mainActivity = new Intent(this, MainActivity.class);
mainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
mainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
添加标记现在,它将进入主屏幕。
请接受您的一些旧问题。 – nothrow 2010-09-16 07:25:49
一个简单的方法是重写onBackPressed或通过keyEvent = Backpressed并在其上调用onHomePressed。那么它将表现得像homePressed – Nepster 2014-05-29 13:27:41