我需要使用mainactivity中的退出按钮退出我的Android应用程序

时间:2014-01-06 19:47:55

标签: android android-intent android-activity exit close-application

我创建了两个活动,即MainActivity和registration。 MainActivity用于登录,用户输入其名称和密码。 MainActivity有三个按钮

  1. 登录按钮
  2. 注册按钮
  3. 退出按钮。
  4. 当我按下登录按钮时,用户将使用他输入的用户名和密码登录到他的帐户。单击注册按钮将导航到注册活动。注册活动有一个后退按钮,可以导航回主要活动。我在mainactivity中有第三个退出按钮,完全退出应用程序。我创建了一个退出按钮的实例,在退出按钮的setonclicklistener部分,我编写了以下代码。

    Button exit=(Button)findViewById(R.id.exit);
    exit.setOnClickListener(new OnClickListener() {
    
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent intent = new Intent(Intent.ACTION_MAIN);
            intent.addCategory(Intent.CATEGORY_HOME);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);
            finish();
            System.exit(0);         
        }
    });
    

    现在,当我首先运行应用程序时,将显示mainactivity。单击注册按钮后,将显示注册活动。当我点击注册活动中的后退按钮时,我将被移动到mainactivity。然后从按下“退出”按钮时的主要活动中,应用程序关闭并显示主屏幕。当我再次打开我的应用程序,而不是看到主要活动时,我看到了注册活动。请帮帮我。当我再次点击我的应用程序图标而不是注册活动时,我需要看到主要活动。很抱歉这么长的问题。任何人都可以帮帮我..

4 个答案:

答案 0 :(得分:1)

在MainActivity中的Android Manifest.xml文件中添加此标记

android:clearTaskOnLaunch="true"

答案 1 :(得分:0)

使用主要活动中的startActivityForResult() api开始您的注册活动,无需在退出按钮的点击回拨中调用任何活动finish()即可完成工作...

答案 2 :(得分:0)

尝试将此添加到您的注册活动:

public void onBackPressed() {           
        finish();
}

然后删除System.exit(0);,因为您已调用finish();

答案 3 :(得分:0)

http://developer.android.com/guide/topics/manifest/activity-element.html关于noHistory:

尝试在avtivity标记之间的Manifest.xml文件中添加它。

机器人:noHistory = “真”