Android 按下“后退”按钮时会突然退出

Android 按下“后退”按钮时会突然退出,android,activity-finish,onbackpressed,Android,Activity Finish,Onbackpressed,我已经实现了当按下后退按钮时退出我的应用程序。当我退出应用程序时,我通常会得到一个起伏的退出,在应用程序正确退出之前,最新的应用程序会显示出来。是什么导致了这个问题?这是我的密码 public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button discover,why,enterprise,business,services,office,inquire,co

我已经实现了当按下后退按钮时退出我的应用程序。当我退出应用程序时,我通常会得到一个起伏的退出,在应用程序正确退出之前,最新的应用程序会显示出来。是什么导致了这个问题?这是我的密码

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button discover,why,enterprise,business,services,office,inquire,connect;
TextView offer;
Intent p;
private static long back_pressed_time;
private static long PERIOD = 2000;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    offer = (TextView)findViewById(R.id.offer);
    discover = (Button) findViewById(R.id.discover_us);
    why = (Button) findViewById(R.id.why_us);
    enterprise = (Button) findViewById(R.id.enterprise_soln);
    business = (Button) findViewById(R.id.business_soln);
    services = (Button) findViewById(R.id.services);
    office = (Button) findViewById(R.id.office_automation);
    inquire = (Button) findViewById(R.id.inquire);
    connect = (Button) findViewById(R.id.connect);
}

@Override
public void onClick(View v) {
    switch (v.getId())
    {
        case R.id.discover_us:
             p = new Intent(this,DiscoverUs.class);
            startActivity(p);
            break;
        case R.id.why_us:
            p = new Intent(this,WhyTechbiz.class);
            startActivity(p);
            break;
        case R.id.office_automation:
            p = new Intent(this,Office_Automation.class);
            startActivity(p);
            break;
        case R.id.services:
             p = new Intent(this,Services.class);
            startActivity(p);
            break;

        case R.id.enterprise_soln:
            p = new Intent(this,Enterprise_Soln.class);
            startActivity(p);
            break;
        case R.id.business_soln:
            p = new Intent(this,Business_Soln.class);
            startActivity(p);
            break;
        case R.id.inquire:
            p = new Intent(this,Inquire.class);
            startActivity(p);
            break;
        case R.id.connect:
            p = new Intent(this,Connect.class);
            startActivity(p);
            break;
    }
    overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}


@Override
public void onBackPressed() {
    if (back_pressed_time + PERIOD > System.currentTimeMillis()) {
    super.onBackPressed();
} else {
    back_pressed_time = System.currentTimeMillis();
    Toast.makeText(MainActivity.this, "Press once again to exit!", Toast.LENGTH_SHORT).show();
}
}

代码看起来不错,操作系统/设备一定很慢


如果您的onBackPressed()中有任何其他代码未在此处发布,则可能是因为其他代码看起来都不错。

您的代码看起来不错,您的操作系统/设备一定很慢


如果您的onBackPressed()中有任何其他代码没有在此处发布,这可能是因为其他一切看起来都很好。

当您完成活动时,只需同时调用
super.onBackPressed()

当您完成活动时,只需同时调用
super.onBackPressed())

请尝试以下操作:

@Override
public void onBackPressed() {

    if (back_pressed_time + PERIOD > System.currentTimeMillis()) {
        super.onBackPressed();
    } else {
        back_pressed_time = System.currentTimeMillis();
        Toast.makeText(MainActivity.this, "Press once again to exit!", Toast.LENGTH_SHORT).show();
    }
}
调用
finish()

@Override
public void onBackPressed() {

    if (back_pressed_time + PERIOD > System.currentTimeMillis()) {
        super.onBackPressed();
    } else {
        back_pressed_time = System.currentTimeMillis();
        Toast.makeText(MainActivity.this, "Press once again to exit!", Toast.LENGTH_SHORT).show();
    }
}

调用
finish()

通过在我的应用程序主题中将windowIsTranslucent设置为false来解决问题。

通过在我的应用程序主题中将windowIsTranslucent设置为false来解决问题。

首先,你应该初始化back\u pressed\u time并设置PERIOD=3000最后一步这一行应该位于顶部
后退时间=System.currentTimeMillis(); 因此:


首先,您应该初始化back\u pressed\u time并设置PERIOD=3000最后一步这一行应该位于顶部
后退时间=System.currentTimeMillis(); 因此:


我认为这段代码不足以追踪您的问题。单击“上一步”按钮时,您的
活动中是否还有其他正在进行的活动?请定义“跳跃式退出”。跳跃式退出意味着在显示最近的应用程序列表时,它会冻结应用程序的中间关闭,然后最终退出。我认为这段代码不足以跟踪您的问题。当您单击“后退”按钮时,您的
活动中是否还有其他正在进行的活动?请定义“跳跃式退出”。跳跃式退出意味着在显示最近的应用程序列表时,它会冻结应用程序的中间关闭,然后最终退出编辑过的我的代码看一看。不可能是我的手机,因为它有3吉比特的内存,加上我在不同的手机上试用过,请看我的代码。不可能是我的手机,因为它有3吉比特的内存,加上我在不同的手机上试过,直到没有区别