封装Activity相关工具类

/**

* @author vondear

* @date 2016/1/24

*

* 封装Activity相关工具类

*/

public class ActivityTool {

private static StackactivityStack;

    /**

* 添加Activity 到栈

*

    * @param activity

    */

    public static void addActivity(Activity activity) {

if (activityStack ==null) {

activityStack =new Stack<>();

        }

activityStack.add(activity);

    }

/**

* 获取当前的Activity(堆栈中最后一个压入的)

*/

    public static ActivitycurrentActivity() {

Activity activity =activityStack.lastElement();

        return activity;

    }

/**

* 结束当前Activity(堆栈中最后一个压入的)

*/

    public static void finishActivity() {

Activity activity =activityStack.lastElement();

    }

/**

* 结束指定的Activity

*

    * @param activity

    */

    public static void finishActivity(Activity activity) {

if (activity !=null) {

activityStack.remove(activity);

            activity.finish();

            activity =null;

        }

}

/**

* 结束指定类名的Activity

*/

    public static void finishActivity(Class cls) {

for (Activity activity :activityStack) {

if (activity.getClass().equals(cls)) {

finishActivity(activity);

            }

}

}

/**

* 结束所有的Activity

*/

    public static void finishAllActivity() {

int size =activityStack.size();

        for (int i =0; i < size; i++) {

if (null !=activityStack.get(i)) {

activityStack.get(i).finish();

            }

}

activityStack.clear();

    }

public static void AppExit(Context context) {

try {

finishAllActivity();

            ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);

            activityManager.restartPackage(context.getPackageName());

            System.exit(0);

        }catch (Exception e) {

}

}

public static StackgetActivityStack() {

return activityStack;

    }

/**

* 判断是否存在指定Activity

*

    * @param context    上下文

    * @param packageName 包名

    * @param className  activity全路径类名

    * @return {@code true}: 是
{@code false}: 否

*/

    public static boolean isExistActivity(Context context, String packageName, String className) {

Intent intent =new Intent();

        intent.setClassName(packageName, className);

        return !(context.getPackageManager().resolveActivity(intent, 0) ==null ||

intent.resolveActivity(context.getPackageManager()) ==null ||

context.getPackageManager().queryIntentActivities(intent, 0).size() ==0);

    }

/**

* 打开指定的Activity

*

    * @param context    上下文

    * @param packageName 包名

    * @param className  全类名

*/

    public static void launchActivity(Context context, String packageName, String className) {

launchActivity(context, packageName, className, null);

    }

/**

* 打开指定的Activity

*

    * @param context    上下文

    * @param packageName 包名

    * @param className  全类名

    * @param bundle      bundle

*/

    public static void launchActivity(Context context, String packageName, String className, Bundle bundle) {

context.startActivity(RxIntentTool.getComponentNameIntent(packageName, className, bundle));

    }

/**

* 要求最低API为11

* Activity 跳转

* 跳转后Finish之前所有的Activity

*

    * @param context

    * @param goal

    */

    public static void skipActivityAndFinishAll(Context context, Class goal, Bundle bundle) {

Intent intent =new Intent(context, goal);

        intent.putExtras(bundle);

        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

        context.startActivity(intent);

        ((Activity) context).finish();

    }

/**

* 要求最低API为11

* Activity 跳转

* 跳转后Finish之前所有的Activity

*

    * @param context

    * @param goal

    */

    public static void skipActivityAndFinishAll(Context context, Class goal) {

Intent intent =new Intent(context, goal);

        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

        context.startActivity(intent);

        ((Activity) context).finish();

    }

/**

* Activity 跳转

*

    * @param context

    * @param goal

    */

    public static void skipActivityAndFinish(Context context, Class goal, Bundle bundle) {

Intent intent =new Intent(context, goal);

        intent.putExtras(bundle);

        context.startActivity(intent);

        ((Activity) context).finish();

    }

/**

* Activity 跳转

*

    * @param context

    * @param goal

    */

    public static void skipActivityAndFinish(Context context, Class goal) {

Intent intent =new Intent(context, goal);

        context.startActivity(intent);

        ((Activity) context).finish();

    }

/**

* Activity 跳转

*

    * @param context

    * @param goal

    */

    public static void skipActivity(Context context, Class goal) {

Intent intent =new Intent(context, goal);

        context.startActivity(intent);

    }

/**

* Activity 跳转

*

    * @param context

    * @param goal

    */

    public static void skipActivity(Context context, Class goal, Bundle bundle) {

Intent intent =new Intent(context, goal);

        intent.putExtras(bundle);

        context.startActivity(intent);

    }

public static void skipActivityForResult(Activity context, Class goal, int requestCode) {

Intent intent =new Intent(context, goal);

        context.startActivityForResult(intent, requestCode);

    }

public static void skipActivityForResult(Activity context, Class goal, Bundle bundle, int requestCode) {

Intent intent =new Intent(context, goal);

        intent.putExtras(bundle);

        context.startActivityForResult(intent, requestCode);

    }

/**

* 获取launcher activity

*

    * @param context    上下文

    * @param packageName 包名

    * @return launcher activity

*/

    public static StringgetLauncherActivity(Context context, String packageName) {

Intent intent =new Intent(Intent.ACTION_MAIN, null);

        intent.addCategory(Intent.CATEGORY_LAUNCHER);

        PackageManager pm = context.getPackageManager();

        List infos = pm.queryIntentActivities(intent, 0);

        for (ResolveInfo info : infos) {

if (info.activityInfo.packageName.equals(packageName)) {

return info.activityInfo.name;

            }

}

return "no " + packageName;

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容