当前位置:  开发笔记 > 编程语言 > 正文

如何退出应用程序并显示主屏幕?

如何解决《如何退出应用程序并显示主屏幕?》经验,为你挑选了9个好方法。

我有一个应用程序,在主页上我有通过应用程序导航的按钮.

在那个页面上,我有一个"EXIT"按钮,当点击它时,应该将用户带到应用程序图标所在的手机上的主屏幕.

我怎样才能做到这一点?



1> ognian..:

Android的设计不赞成通过选择退出应用程序,而是通过操作系统管理它.您可以通过相应的Intent调出Home应用程序:

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);


你甚至可以使用.."moveTaskToBack(true);"
它会处理所有资源吗?因为当我以这种方式退出应用程序时,一段时间后我再次单击应用程序图标.它从我离开的地方开始.这意味着该应用程序仍在后台运行.
Activity.finish();
这使您的应用程序保持在后台,因此它不会退出应用程序.
这个答案只会使主屏幕出现,并且不会像OP那样完全退出/关闭应用程序.

2> Kartik Domad..:

也许你可以尝试这样的事情

假设在我们的应用程序中,我们有许多活动(比如十个),我们需要直接退出此活动.我们可以做的是,创建一个intent并转到root活动并在intent中设置标志

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

另外,在意图中添加一些额外的布尔值

intent.putExtra("EXIT", true);

然后在根活动,检查的值boolean,并根据该呼叫结束(),在onCreate()根活动

if (getIntent().getBooleanExtra("EXIT", false)) {
 finish();
}


在我的情况下,我不得不重写`onNewIntent`.因为intnet.getExtras()保持为null.

3> Ndupza..:
System.exit(0);

可能就是你要找的东西.它将关闭整个应用程序并带您进入主屏幕.


不应按核心Android团队的建议使用System.exit(0).
我认为这是特殊情况下的最佳方法.比如说需要互联网的应用程序,连接会将一些活动分解到应用程序中.可以显示警告对话框(无按钮).返回按钮需要退出整个应用程序,因为重新进入需要再次登录/初始化.System.exit是我发现的唯一合理工作的东西.虽然不确定@ user1699548评论.

4> Lazy Ninja..:

这对我很有用.
关闭所有以前的活动,如下所示:

    Intent intent = new Intent(this, MainActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intent.putExtra("Exit me", true);
    startActivity(intent);
    finish();

然后在MainActivity onCreate()方法中添加此项以完成MainActivity

    setContentView(R.layout.main_layout);

    if( getIntent().getBooleanExtra("Exit me", false)){
        finish();
        return; // add this to prevent from doing unnecessary stuffs
    }



5> 小智..:

首先使用方法完成您的申请 finish();

然后在onDestroy中添加以下行以删除Force关闭

android.os.Process.killProcess(android.os.Process.myPid());
super.onDestroy();


@Jacky:杀死进程如何不释放任何系统资源?
永远不要使用它,因为它没有机会释放资源

6> Christian..:

如果您想结束活动,可以直接致电finish().然而,在屏幕上有一个退出按钮是不好的做法.


我正在使用它"你需要将此应用程序更新到最新版本",我不希望它们继续使用它.还是不好的做法......?

7> Burusothman..:

有些活动实际上你不想在按下后退按钮时再次打开这样的Splash Screen Activity,欢迎屏幕活动,确认Windows.实际上你在活动堆栈中不需要这个.你可以使用=> open manifest.xml文件并添加一个属性

机器人:noHistory = "真"

这些活动.



要么

有时您希望在某些后退按钮中关闭整个应用程序.这里的最佳实践是打开主窗口而不是退出应用程序.为此,您需要覆盖onBackPressed()方法.通常这种方法会打开堆栈中的顶级活动.

@Override
public void onBackPressed(){
Intent a = new Intent(Intent.ACTION_MAIN);
a.addCategory(Intent.CATEGORY_HOME);
a.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(a);

}

要么

在后退按钮中,您想要退出该活动,并且您也不想在活动堆栈中添加它.在onBackPressed()方法中调用finish()方法.它不会关闭整个应用程序.它将用于堆栈中的先前活动.

@Override
public void onBackPressed() {
  finish();
}



8> Janusz..:

建议不要退出Android应用程序.有关详细信息,请参阅此问题.

用户可以随时通过主页按钮退出应用程序,也可以通过后退按钮退出第一个活动.


@janusz:按下主页按钮永远不会退出Android应用程序,而是在后台进行...

9> trante..:

(我尝试过以前的答案,但他们缺少一些观点.例如,如果你return;在完成活动后没有完成,剩下的活动代码就会运行.你还需要编辑onCreate with return.如果你没有运行super.onCreate()你会得到一个运行时错误)

说你有MainActivityChildActivity.

在ChildActivity里面添加:

Intent intent = new Intent(ChildActivity.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
return true;

在MainActivity的onCreate里面添加:

@Override
public void onCreate(Bundle savedInstanceState) {

    mContext = getApplicationContext();

    super.onCreate(savedInstanceState);

    if (getIntent().getBooleanExtra("EXIT", false)) {
        finish();
        return;
    }
    // your current codes
    // your current codes
}

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有