当用户单击按钮时,我想以编程方式在 Android 中转到主屏幕。如何才能做到这一点?
问问题
83595 次
6 回答
180
您可以通过Intent做到这一点。
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
此 Intent 将启动用户定义的启动器应用程序。请注意这一点,因为如果用户不希望发生这种情况,这看起来就像您的应用程序崩溃了。
如果您希望它从您的应用程序中构建一个退出按钮,请阅读这篇关于Android中的退出按钮的文章
于 2010-09-16T08:41:10.080 回答
31
一条线解决方案
moveTaskToBack(true); //activity.moveTaskToBack(true);
它将表现为按下主页按钮
于 2015-08-07T07:42:36.093 回答
11
Janusz 的回答很棒。
我想补充的唯一一点(评论有点太长)是您可以转到主屏幕而无需参考当前活动。
Janusz 的代码需要从 Activity 或 Fragment 调用,因为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);
于 2012-03-15T19:50:17.517 回答
1
来自Android 开发者网站
以下是您可以使用这些附加参数指定为意图的其他操作的一些示例:
* ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.
于 2010-09-16T07:48:09.407 回答
1
startActivity((new Intent(Intent.ACTION_MAIN)).addCategory(Intent.CATEGORY_HOME).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
于 2019-07-12T04:42:42.380 回答
0
我知道这有点晚了,但我也遇到了同样的问题,这就是我解决它的方法。回到你的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
活动按钮的后退按钮时,它将转到主屏幕。
于 2017-09-06T10:36:06.350 回答