按两下返回键退出,退出多个activity,添加退出动画

按两下返回键退出,退出多个activity,添加退出动画


现在有很多软件在你按返回键的时候会提示“再按一下退出程序”之类的提示,其实实现很简单,代码如下:
    long mExitTime = 0;
    /** 点击两下返回键退出程序 */
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {

        if (keyCode == KeyEvent.KEYCODE_BACK)
        {
            if ((System.currentTimeMillis() - mExitTime) > 2000)
            {
                Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
                mExitTime = System.currentTimeMillis();
                Log.e("tag",mExitTime+"");
            } else
            {
                 finish();
            }
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }


直接放到你的activity中就可以实现了。
退出多个activity,其实就是每次打开activity的时候就把这个activity加入到列表中,当要退出的时候就通过列表把所有的activity都一一finish()掉。代码如下,新建个类:

/**Activity列表,用于关闭程序*/
public class MyApplication extends Application
{

   private List activitylsit=new LinkedList();
   private static MyApplication instance;
   private MyApplication(){}
   
   public static MyApplication getInstance(){
      if (null==instance)
      {
         instance=new MyApplication();
      }
      return instance;
   }

   
   public void addActivity(Activity activity)
   {
      activitylsit.add(activity);
   }
   
   public  void exit()
   {
      for(Activity activity:activitylsit){
         activity.finish();
      }
      System.exit(0);
   }
}


每次打开新的activity的时候就调用addActivity这个方法,当要关闭所有的activity的时候就调用exit这个方法!
添加退出动画,我们退出activity的时候都要调用finish(),所有我们就可以重写这个方法,添加一些动画效果。代码如下:
/**退出程序*/
public void finish(){
    super.finish();
    //添加动画
    overridePendingTransition(R.anim.rotate_left_in, R.anim.rotate_left_out);
}

动画可以自己写,下面是的动画,复制后改文件名即可。

rotate_left_in



    
rotate_left_out
 
  
 
  




 
  
 
  


我也是新手,有什么不对的地方欢迎反馈!谢谢大家的支持!


欢迎带地址转发。。谢谢!

你可能感兴趣的:(按两下返回键退出,退出多个activity,添加退出动画)