Android 는 더 블 클릭 으로 종료 하 는 기능 을 실현 합 니 다.

안 드 로 이 드 더 블 클릭 후퇴 키 를 실현 하여 현재 앱 기능 종료
이 기능 을 실현 하 는 기본 적 인 사고방식 은
1,감청 후퇴 키,두 번 후퇴 간격 비교,2 초 이하 면 출발 퇴장
2,현재 앱 종료
기본 클래스 에서 BaseActivity 에 감청 을 설정 하 겠 습 니 다.코드 는 다음 과 같 습 니 다.

 public void onBackPressed() {

    //Preferences          
    boolean isDoubleClick = true;
    //BaseApplication.get("ifDoubleClickedBack", true);

    if (isDoubleClick) {
      long curTime = SystemClock.uptimeMillis();
      if ((curTime - mBackPressedTime) < (2 * 1000)) {
        finish();
        //activity   
        AppManager.getAppManager().AppExit();
      } else {
        mBackPressedTime = curTime;
        Toast.makeText(this, "      ", Toast.LENGTH_SHORT).show();
      }
    } else {
      finish();
    }

  }
현재 APP 에서 탈퇴 할 때 중국 오픈 소스 를 참고 하여 activity 스 택 을 봉 인 했 습 니 다.
인 스 턴 스 코드:

public class AppManager {
  private static Stack<Activity> activityStack;
  private static AppManager instance;

  private AppManager() {
  }

  /**
   *     
   */
  public static AppManager getAppManager() {
    if (instance == null) {
      instance = new AppManager();
    }

    if (activityStack == null) {
      activityStack = new Stack<Activity>();
    }

    return instance;
  }

  /**
   *      Activity
   *
   * @author kymjs
   */
  public static Activity getActivity(Class<?> cls) {
    if (activityStack != null)
      for (Activity activity : activityStack) {
        if (activity.getClass().equals(cls)) {
          return activity;
        }
      }
    return null;
  }

  /**
   *   Activity   
   */
  public void addActivity(Activity activity) {
    activityStack.add(activity);
  }

  /**
   *     Activity(          )
   */
  public Activity currentActivity() {
    Activity activity = activityStack.lastElement();
    return activity;
  }

  /**
   *     Activity(          )
   */
  public void finishActivity() {
    Activity activity = activityStack.lastElement();
    finishActivity(activity);
  }

  /**
   *      Activity
   */
  public void finishActivity(Activity activity) {
    if (activity != null && activityStack.contains(activity)) {
      activityStack.remove(activity);
      activity.finish();
    }
  }

  /**
   *      Activity
   */
  public void removeActivity(Activity activity) {
    if (activity != null && activityStack.contains(activity)) {
      activityStack.remove(activity);
    }
  }

  /**
   *        Activity
   */
  public void finishActivity(Class<?> cls) {
    for (Activity activity : activityStack) {
      if (activity.getClass().equals(cls)) {
        finishActivity(activity);
        break;
      }
    }
  }

  /**
   *     Activity
   */
  public void finishAllActivity() {
    for (int i = 0, size = activityStack.size(); i < size; i++) {
      if (null != activityStack.get(i)) {
        finishActivity(activityStack.get(i));
      }
    }
    activityStack.clear();
  }

  /**
   *       
   */
  public void AppExit() {
    try {
      finishAllActivity();
      // System.exit(0);
    } catch (Exception e) {
    }
  }
}
생각 은 매번 activity 가 activity 스 택 에 눌 려 관리 하 는 것 입 니 다.
종료 시 스 택 을 옮 겨 다 니 며 finish 씩
이 글 이 여러분 의 안 드 로 이 드 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기