国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android開發(fā)之Activity管理工具類完整示例

2019-10-22 18:15:59
字體:
供稿:網(wǎng)友

本文實(shí)例講述了Android開發(fā)之Activity管理工具類。分享給大家供大家參考,具體如下:

這個(gè)工具類是對(duì)Activity的一些管理,非常適用

package com.maobang.imsdk.util;import java.util.Stack;import android.app.Activity;import android.app.ActivityManager;import android.content.Context;import android.graphics.drawable.Drawable;import android.view.View;import android.view.ViewGroup;import android.webkit.WebView;import android.widget.ImageView;import android.widget.ListView;/** * Activity管理類 * Created by Administrator on 2016/11/24. */public class ActivityPageManager {  private static Stack<Activity> activityStack;  private static ActivityPageManager instance;  /**   * constructor   */  private ActivityPageManager() {  }  /**   * get the AppManager instance, the AppManager is singleton.   */  public static ActivityPageManager getInstance() {    if (instance == null) {      instance = new ActivityPageManager();    }    return instance;  }  /**   * add Activity to Stack   */  public void addActivity(Activity activity) {    if (activityStack == null) {      activityStack = new Stack<Activity>();    }    activityStack.add(activity);  }  /**   * remove Activity from Stack   */  public void removeActivity(Activity activity) {    if (activityStack == null) {      activityStack = new Stack<Activity>();    }    activityStack.remove(activity);  }  /**   * get current activity from Stack   */  public Activity currentActivity() {    Activity activity = activityStack.lastElement();    return activity;  }  /**   * finish current activity from Stack   */  public void finishActivity() {    Activity activity = activityStack.lastElement();    finishActivity(activity);  }  /**   * finish the Activity   */  public void finishActivity(Activity activity) {    if (activity != null) {      activityStack.remove(activity);      activity.finish();      activity = null;    }  }  /**   * finish the Activity   */  public void finishActivity(Class<?> cls) {    for (Activity activity : activityStack) {      if (activity.getClass().equals(cls)) {        finishActivity(activity);      }    }  }  /**   * finish all Activity   */  public void finishAllActivity() {    if(activityStack!=null&&activityStack.size()>0)    {      for (int i = 0, size = activityStack.size(); i < size; i++) {        if (null != activityStack.get(i)) {          activityStack.get(i).finish();        }      }      activityStack.clear();    }  }  /**   * release all resourse for view   * @param view   */  public static void unbindReferences(View view) {    try {      if (view != null) {        view.destroyDrawingCache();        unbindViewReferences(view);        if (view instanceof ViewGroup){          unbindViewGroupReferences((ViewGroup) view);        }      }    } catch (Throwable e) {      // whatever exception is thrown just ignore it because a crash is      // always worse than this method not doing what it's supposed to do    }  }  private static void unbindViewGroupReferences(ViewGroup viewGroup) {    int nrOfChildren = viewGroup.getChildCount();    for (int i = 0; i < nrOfChildren; i++) {      View view = viewGroup.getChildAt(i);      unbindViewReferences(view);      if (view instanceof ViewGroup)        unbindViewGroupReferences((ViewGroup) view);    }    try {      viewGroup.removeAllViews();    } catch (Throwable mayHappen) {      // AdapterViews, ListViews and potentially other ViewGroups don't      // support the removeAllViews operation    }  }  @SuppressWarnings("deprecation")  private static void unbindViewReferences(View view) {    // set all listeners to null (not every view and not every API level    // supports the methods)    try {      view.setOnClickListener(null);      view.setOnCreateContextMenuListener(null);      view.setOnFocusChangeListener(null);      view.setOnKeyListener(null);      view.setOnLongClickListener(null);      view.setOnClickListener(null);    } catch (Throwable mayHappen) {    }    // set background to null    Drawable d = view.getBackground();    if (d != null){      d.setCallback(null);    }    if (view instanceof ImageView) {      ImageView imageView = (ImageView) view;      d = imageView.getDrawable();      if (d != null){        d.setCallback(null);      }      imageView.setImageDrawable(null);      imageView.setBackgroundDrawable(null);    }    // destroy WebView    if (view instanceof WebView) {      WebView webview = (WebView) view;      webview.stopLoading();      webview.clearFormData();      webview.clearDisappearingChildren();      webview.setWebChromeClient(null);      webview.setWebViewClient(null);      webview.destroyDrawingCache();      webview.destroy();      webview = null;    }    if (view instanceof ListView) {      ListView listView = (ListView) view;      try {        listView.removeAllViewsInLayout();      } catch (Throwable mayHappen) {      }      ((ListView) view).destroyDrawingCache();    }  }  /**   * exit System   * @param context   */  public void exit(Context context) {    exit(context, true);  }  /**   * exit System   * @param context   * @param isClearCache   */  @SuppressWarnings("deprecation")  public void exit(Context context, boolean isClearCache) {    try {      finishAllActivity();      if(context != null){        ActivityManager activityMgr = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);        activityMgr.restartPackage(context.getPackageName());      }//      if(isClearCache){//        LruCacheManager.getInstance().evictAll();//        CacheManager.clearAll();//      }      System.exit(0);      android.os.Process.killProcess(android.os.Process.myPid());    } catch (Exception e) {      e.printStackTrace();    }  }}

希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到Android開發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 通河县| 宁波市| 清河县| 曲阳县| 九龙城区| 云龙县| 汉源县| 闽清县| 沾化县| 贵德县| 赤壁市| 南康市| 临沂市| 南宁市| 周宁县| 丰县| 周至县| 昭苏县| 灌南县| 房山区| 射洪县| 丹棱县| 崇信县| 休宁县| 正宁县| 裕民县| 新乐市| 平南县| 桂东县| 宁强县| 乐山市| 烟台市| 翁牛特旗| 建平县| 张家川| 开远市| 左权县| 五寨县| 承德市| 淮北市| 隆安县|