我已经实现了我的应用程序,在按下后退按钮时退出。当我退出应用程序时,我通常会在应用程序正常退出之前显示最近的应用程序。可能导致此问题的原因是什么?这是我的代码。
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();
}
}
答案 0 :(得分:0)
首先你应该初始化back_pressed_time并设置PERIOD = 3000最后一步这一行应该是上一个
back_pressed_time = System.currentTimeMillis();
所以:
@Override
public void onBackPressed() {
back_pressed_time = System.currentTimeMillis();
if (back_pressed_time + PERIOD > System.currentTimeMillis()) this.finish();
else Toast.makeText(MainActivity.this, "Press once again to exit!", Toast.LENGTH_SHORT).show();
}