按两下返回键退出,退出多个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<Activity> activitylsit=new LinkedList<Activity>();
   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
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <alpha
        android:duration="800"
        android:fromAlpha="0.0"
        android:toAlpha="1.0"/>
</set>
<pre style="font-family: 宋体; font-size: 11.3pt; color: rgb(169, 183, 198); background-color: rgb(43, 43, 43);"><span style="color: rgb(152, 118, 170);"><em>rotate_left_out</em></span>
 
 
 
 
<pre name="code" class="html"><?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
    android:duration="1000"
    android:fromDegrees="-360"
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toDegrees="+3600"/>
<scale
    android:duration="1000"
    android:fromXScale="0.6"
    android:fromYScale="0.6"
    android:pivotX="50%p"
    android:pivotY="50%p"
    android:toXScale=".0"
    android:toYScale=".0"/>
</set>
 
 
 
 


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


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

猜你喜欢

转载自blog.csdn.net/yinbaoshiguang/article/details/47804815