以编程方式进入主屏幕
当用户点击button时,我想在Android中以编程方式进入主屏幕。 如何才能做到这一点?
你可以通过一个意图来做到这一点。
Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_HOME); startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(startMain);
这个意图将启动用户定义的启动器应用程序。 要小心,因为这将看起来像你的应用程序崩溃,如果用户不期望这一点。
如果你想要从你的应用程序build立一个退出button,请阅读这篇文章在Android的退出button
Janusz的回答非常好。
我想添加的唯一的东西,对于评论来说有点太长了,你可以在没有引用当前活动的情况下进入主屏幕。
由于startActivity()
,Janusz的代码需要从Activity或Fragment中调用,
为了解决这个问题,你可以在应用程序文件中存储一个静态引用到你的应用程序上下文:
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);
一线解决scheme
moveTaskToBack(true); //activity.moveTaskToBack(true);
它会像Homebutton一样被按下
从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
的后退button时,它将进入主屏幕。