即使当前活动不是主要活动,如何退出Android应用程序

时间:2016-08-12 21:12:59

标签: android android-activity exit

我有这个活动流程

HomeActivity> Activity1>活动2>活动3> HomeActivity

我可以通过按活动3上的取消按钮直接从Activity3切换回HomeActivity。

但是当我按下HomeActivity上的后退按钮时,我想退出应用程序,但它会将我带回Activity3 ...如何退出应用程序???这是我的代码 在家庭活动:

@Override
    public void onBackPressed() {
            finish();
            System.exit(1);
        }  

如果我在HomeActivity上启动应用程序时按下后退按钮,它会正常工作,关闭应用程序...

当我浏览所有其他活动时如何使其工作?

3 个答案:

答案 0 :(得分:2)

首先请注意,在浏览活动时,您创建了一堆活动,这就是为什么只调用 dayParameter.Value = Convert.ToString(Convert.ToDateTime(Jfunctionparents.GetSystemDate().Substring(0, 2))); monthParameter.Value = Convert.ToString(Convert.ToDateTime(Jfunctionparents.GetSystemDate().Substring(3,2))); yearParameter.Value = Convert.ToString(Convert.ToDateTime(Jfunctionparents.GetSystemDate().Substring(6,4))); 完成您的HomeActivity,然后android获取堆栈上的先前活动,即活动3并把它放在屏幕上。

我会这样做:

1)从Activity3调用HomeActivity,如下所示:

 public class Jfunctionparents
{
    public static string GetSystemDate()
    {
        return Convert.ToString(System.DateTime.Today.ToString("d"));
    }
    public static string GetSystemTime()
    {
        return Convert.ToString(System.DateTime.Today.ToString("t"));
    }

这将调用您的HomeActivity并清除堆栈中的所有活动

2)在HomeActivity上System.FormatException: String was not recognized as a valid DateTime. at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles) at System.Convert.ToDateTime(String value) 添加:

finish()

希望这有用!如果代码无效或者我误解了这个问题,请不要怀疑评论。

答案 1 :(得分:1)

您应该以这种方式从Activity3切换到HomeActivity:

Intent launchNextActivity = new Intent(Activity3.this, HomeActivity.class);
launchNextActivity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
launchNextActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);                  
launchNextActivity.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(launchNextActivity);

然后onBackPressed()应该可以正常工作。

答案 2 :(得分:0)

尝试打电话 finishAffinity();在HomeAactivity的onBackPressed()中。