Android关掉多个activity,Android应用开发之Android Activity栈管理 制定关闭某一个Activity,关闭所有Activit...
本文將帶你了解Android應(yīng)用開發(fā)之Android Activity棧管理? 制定關(guān)閉某一個(gè)Activity,關(guān)閉所有Activit,希望本文對(duì)大家學(xué)Android有所幫助。
系統(tǒng)Api :打開新的Activity 關(guān)閉之前所有Activity。
Intent intent = new Intent(this, ? LoginActivity.class);intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK ? | ? Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);
自己管理: 將Activity放入集合進(jìn)行管理
/**? ?* Activity管理類? ?*?*/public ? class AppManager { ???private static Stack activityStack; ? ???private static AppManager instance; ? ???private AppManager() { ?} ???/**? ? ??* 單一實(shí)例? ? ??*/?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); ?} ???/**? ? ??* 獲取當(dāng)前Activity(堆棧中最后一個(gè)壓入的)? ? ??*/?public Activity currentActivity() { ??Activity ? activity = activityStack.lastElement(); ??return activity; ?} ? ???/**? ??* 結(jié)束當(dāng)前Activity(堆棧中最后一個(gè)壓入的)? ??*/?public void finishActivity() { ? ??Activity activity = activityStack.lastElement(); ? ??finishActivity(activity); ?} ???/**? ? ??* 結(jié)束指定的Activity? ? ??*/?public void finishActivity(Activity activity) { ? ??if (activity != null) { activityStack.remove(activity); ? activity.finish(); activity = null; ??} ?} ? ???/**? ??* 結(jié)束指定類名的Activity? ??*/?public void ? finishActivity(Class cls) { ??for (Activity activity ? : activityStack) { if (activity.getClass().equals(cls)) { ? ?finishActivity(activity); } ??} ?} ???/**? ? ??* 結(jié)束所有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(); ?} ???/**? ? ??* 退出應(yīng)用程序? ? ??*/?@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(); ??} ? ?} }
本文由職坐標(biāo)整理并發(fā)布,希望對(duì)同學(xué)們有所幫助。了解更多詳情請(qǐng)關(guān)注移動(dòng)開發(fā)之Android頻道!
總結(jié)
以上是生活随笔為你收集整理的Android关掉多个activity,Android应用开发之Android Activity栈管理 制定关闭某一个Activity,关闭所有Activit...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 家具怎么做 DIY家具制作教程?
- 下一篇: kouxilai是哪国的品牌?