android返回二次退出

来源:互联网 发布:大数据平台功能设计 编辑:程序博客网 时间:2024/05/24 06:34

提供两个主要类吧.

 添加权限:

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>

<uses-permission android:name="android.permission.RESTART_PACKAGES"/>

 

Exit

package net.driverclient.app.bean;import java.io.Serializable;import android.os.Handler;import android.os.HandlerThread;/** * 退出 * @author Bert Guo  * 2013-3-3 */public class Exit implements Serializable {private boolean isExit = false;  private Runnable task = new Runnable() {      public void run() {          isExit = false;      }  };    public void doExitInOneSecond() {      isExit = true;      HandlerThread thread = new HandlerThread("doTask");      thread.start();      new Handler(thread.getLooper()).postDelayed(task, 1000);  }    public boolean isExit() {      return isExit;  }    public void setExit(boolean isExit) {      this.isExit = isExit;  }  }


MainActivity

package net.driver.app.ui;import net.driver.app.AppContext;import net.driver.app.R;import net.driver.app.base.BaseActivity;import net.driver.app.bean.Exit;import net.driver.app.common.UIHelper;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Toast;/** * 主界面 * @author Bert Guo * 2013-4-2 */public class Main extends BaseActivity {private Exit exit = new Exit(); // 退出@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.main);}@Override public void onBackPressed() { // TODO Auto-generated method stubif (exit.isExit()) {android.os.Process.killProcess(android.os.Process.myPid()); // 获取PIDSystem.exit(0);} else {Toast.makeText(getApplicationContext(), "再按一次退出程序",Toast.LENGTH_SHORT).show();exit.doExitInOneSecond();}     }}



 

原创粉丝点击