Android 는 더 블 클릭 으로 종료 하 는 기능 을 실현 합 니 다.
3929 단어 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 씩
이 글 이 여러분 의 안 드 로 이 드 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.