标签:void Activity 管理工具 static activity Override public
ActivityUtil.java
public class ActivityUtil {
private static Stack<Activity> activityStack = new Stack<>();
private static final MyActivityLifecycleCallbacks INSTANCE = new MyActivityLifecycleCallbacks();
public ActivityUtil() {
}
public static ActivityLifecycleCallbacks getActivityLifecycleCallbacks() {
return INSTANCE;
}
/**
* 结束当前 activity
*
* @param activity activity
*/
public static void finishActivity(Activity activity) {
if (activity != null) {
activityStack.remove(activity);
activity.finish();
}
}
/**
* 不用 finish 当前 Activity 时直接调用此方法
*
* @param classes 跳转到的 Activity 的 Class
*/
public static void startActivity(Class classes) {
startActivity(classes, false);
}
/**
* 需要 finish 当前 Activity 时调用此方法,布尔值参数传入 true
*
* @param classes 需要打开的 activity
* @param isFinish 是否 finish 当前 activity
*/
public static void startActivity(Class classes, boolean isFinish) {
Activity currentActivity = getCurrentActivity();
Intent intent = new Intent(currentActivity, classes);
currentActivity.startActivity(intent);
if (isFinish) {
finishActivity(currentActivity);
}
}
/**
* 关闭所有 Activity
*/
public static void closeAllActivity() {
while (true) {
Activity activity = getCurrentActivity();
if (null == activity) {
return;
}
finishActivity(activity);
}
}
/**
* 得到当前的 Activity
*
* @return 当前 Activity
*/
public static Activity getCurrentActivity() {
Activity activity = null;
if (!activityStack.isEmpty()) {
activity = activityStack.peek();
}
return activity;
}
private static class MyActivityLifecycleCallbacks implements ActivityLifecycleCallbacks {
private MyActivityLifecycleCallbacks() {
}
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
ActivityUtil.activityStack.remove(activity);
ActivityUtil.activityStack.push(activity);
}
@Override
public void onActivityStarted(Activity activity) {
}
@Override
public void onActivityResumed(Activity activity) {
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivityStopped(Activity activity) {
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
@Override
public void onActivityDestroyed(Activity activity) {
ActivityUtil.activityStack.remove(activity);
}
}
}
标签:void,Activity,管理工具,static,activity,Override,public 来源: https://blog.csdn.net/qq_39257624/article/details/122472308
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。