Android关掉多个activity,Android应用开发之Android Activity栈管理 制定关闭某一个Activity,关闭所有Activit...
本文將帶你了解Android應用開發之Android Activity棧管理? 制定關閉某一個Activity,關閉所有Activit,希望本文對大家學Android有所幫助。
系統Api :打開新的Activity 關閉之前所有Activity。
Intent intent = new Intent(this, ? LoginActivity.class);intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK ? | ? Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);
自己管理: 將Activity放入集合進行管理
/**? ?* Activity管理類? ?*?*/public ? class AppManager { ???private static Stack 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(); ??} ? ??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.remove(activity); ? activity.finish(); activity = null; ??} ?} ? ???/**? ??* 結束指定類名的Activity? ??*/?public void ? finishActivity(Class cls) { ??for (Activity activity ? : activityStack) { if (activity.getClass().equals(cls)) { ? ?finishActivity(activity); } ??} ?} ???/**? ? ??* 結束所有Activity? ? ??*/?public void finishAllActivity() { ??for (int i ? = 0, size = activityStack.size(); i < size; i++) { if (null != ? activityStack.get(i)) { ?activityStack.get(i).finish(); } ??} ? ??activityStack.clear(); ?} ???/**? ? ??* 退出應用程序? ? ??*/?@SuppressWarnings("deprecation") ?public ? void AppExit(Context context) { ??try { finishAllActivity(); ? ActivityManager activityManager = (ActivityManager) ? context.getSystemService(Context.ACTIVITY_SERVICE); ? activityManager.restartPackage(context.getPackageName()); System.exit(0); ? ??} catch (Exception e) { e.printStackTrace(); ??} ? ?} }
本文由職坐標整理并發布,希望對同學們有所幫助。了解更多詳情請關注移動開發之Android頻道!
總結
以上是生活随笔為你收集整理的Android关掉多个activity,Android应用开发之Android Activity栈管理 制定关闭某一个Activity,关闭所有Activit...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 家具怎么做 DIY家具制作教程?
- 下一篇: kouxilai是哪国的品牌?