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);