Activity 1
public class GuideActivity extends Activity {
private int DELAY_TIME=1000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.guide);
final Intent intent=new Intent(this,HomeActivity.class);
Timer timer=new Timer();
TimerTask task=new TimerTask(){
@Override
public void run() {
// TODO Auto-generated method stub
GuideActivity.this.startActivity(intent);
}
};
timer.schedule(task, DELAY_TIME);
}
}
Activity 2
public class HomeActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
}
@Override
public boolean onKeyDown(int keyCode,KeyEvent event){
if(keyCode==KeyEvent.KEYCODE_BACK){
//System.exit(0);//在这里按返回键的时候退出程序
android.os.Process.killProcess(android.os.Process.myPid());
return true;
}
else{
return super.onKeyDown(keyCode, event);
}
}
}
上边我用GuideActivity作为启动的Activity,然后自动跳转到HomeActivity,在HomeActivity中重写了系统返回键,作用是要直接退出程序,但是不知道为什么这里用System.exit(0);或者android.os.Process.killProcess(android.os.Process.myPid()); 都无法退出程序,而是跳转到了GuideActivity中了。
请问是哪里除了问题,因为这两个方法都是直接结束程序的,但是都没有实现。有什么解决办法没?
android.os.Process.killProcess(android.os.Process.myPid()); 当前的activityA是被干掉了,但是还是会被ActivityManager接管返回到前一个activity
改成下面
Intent intent=new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
System.exit(0);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。