activity 점프 후finish 애니메이션으로 인한 블랙스크린 구제
getWindow().getDecorView().post(new Runnable() {
//TODO activity
}); 아니면 finish자 acvitity 때 복사.
@Override
public void finish() {
//TODO activity
super.finish();
}
AppManager 호출.finishActivityFromName (activity.class.getSimpleName ())) 은 부모 activity를 제거하고 자신의finish () 방법을 호출합니다.
/** 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();
}
return instance;
}
/**
* Activity
*/
public void addActivity(Activity activity) {
if (activityStack == null) {
activityStack = new Stack<Activity>();
}
activityStack.add(activity);
}
/**
* Activity( )
*/
public Activity currentActivity() {
Activity activity = activityStack.lastElement();
return activity;
}
/**
* Activity( )
*/
public void removeActivity() {
Activity activity = activityStack.lastElement();
removeActivity(activity);
}
/**
* Activity
*/
public void removeActivity(Activity activity) {
if (activity != null) {
activityStack.remove(activity);
activity.finish();
activity = null;
}
}
/**
* Activity
*/
public void finishActivity(Class> cls) {
for (Activity activity : activityStack) {
if (activity.getClass().equals(cls)) {
if (activity != null) {
activity.finish();
activity = null;
}
}
}
}
/**
* activity
*/
public boolean containActivity(Class> cls) {
for (Activity activity : activityStack) {
if (activity.getClass().equals(cls)) {
if (activity != null) {
return true;
}
}
}
return false;
}
/**
* Activity
*/
public void finishAllActivity() {
if (activityStack==null) {
return;
}
for (int i = 0, size = activityStack.size(); i < size; i++) {
Activity activity = activityStack.get(i);
if (null != activity) {
activity.finish();
activity = null;
}
}
activityStack.clear();
}
/**
* activity
*/
public void removeActivityFromName(String activityName) {
if (activityStack==null || TextUtils.isEmpty(activityName)) {
return;
}
for (int i = 0; i < activityStack.size(); i++) {
if (activityName.equals(activityStack.get(i).getClass().getSimpleName())){
activityStack.get(i).finish();
}
}
}
/**
* activity activity
*/
public void finishAllExcept(String activityName) {
if (activityStack==null || TextUtils.isEmpty(activityName)) {
return;
}
for (int i = 0; i < activityStack.size(); i++) {
if (activityName.equals(activityStack.get(i).getClass().getSimpleName())){
}else{
activityStack.get(i).finish();
}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.