{"id":1217,"date":"2023-03-18T08:49:34","date_gmt":"2023-03-18T00:49:34","guid":{"rendered":"https:\/\/www.appblog.cn\/?p=1217"},"modified":"2023-04-29T09:39:51","modified_gmt":"2023-04-29T01:39:51","slug":"summary-of-atlas-loading-bundle-plugins-viewgroup-and-local-startactivity-loading-methods","status":"publish","type":"post","link":"https:\/\/www.appblog.cn\/index.php\/2023\/03\/18\/summary-of-atlas-loading-bundle-plugins-viewgroup-and-local-startactivity-loading-methods\/","title":{"rendered":"Atlas\u52a0\u8f7dbundle\u63d2\u4ef6\u603b\u7ed3\uff1aViewGroup\u4e2d\u52a0\u8f7d\u53ca\u672c\u5730startActivity\u65b9\u5f0f"},"content":{"rendered":"<h3>Atlas\u5728ViewGroup\u4e2d\u53ca\u672c\u5730startActivity\u65b9\u5f0f\u52a0\u8f7dbundle\u63d2\u4ef6<\/h3>\n<p><!-- more --><\/p>\n<pre><code class=\"language-java\">public class AtlasDelegateHelper {\n\n    \/\/ViewGroup\u4e2d\u52a0\u8f7d\n    public static void switchToActivity(Activity activity, ActivityGroupDelegate delegate, ViewGroup container, String key, String activityName) {\n        Intent intent = new Intent();\n        intent.setClassName(activity.getBaseContext(), activityName);\n        delegate.startChildActivity(container, key, intent);\n    }\n\n    \/\/\u672c\u5730\u52a0\u8f7d\n    public static void startBundleActivity(Context context, String activityName) {\n        Intent intent = new Intent();\n        intent.setClassName(context, activityName);\n        context.startActivity(intent);\n    }\n\n    public static void startBundleActivity(Activity activity, String activityName) {\n        Intent intent = new Intent();\n        intent.setClassName(activity, activityName);\n        activity.startActivity(intent);\n    }\n\n    public static void startBundleActivity(Fragment fragment, String activityName) {\n        Intent intent = new Intent();\n        Context context = fragment.getContext();\n        if (context != null) {\n            intent.setClassName(fragment.getContext(), activityName);\n        }\n        fragment.startActivity(intent);\n    }\n\n    public static void startBundleActivities(Activity activity, String... activityNames) {\n        if (activityNames != null &amp;&amp; activityNames.length &gt; 0) {\n            Intent[] intents = new Intent[activityNames.length];\n            for (int i = 0; i &lt; activityNames.length; i++) {\n                intents[i] = new Intent();\n                intents[i].setClassName(activity, activityNames[i]);\n            }\n            activity.startActivities(intents);\n        }\n    }\n\n    public static void startBundleActivity(Activity activity, String activityName, Bundle bundle) {\n        Intent intent = new Intent();\n        intent.putExtras(bundle);\n        intent.setClassName(activity, activityName);\n        activity.startActivity(intent);\n    }\n\n    public static void startBundleActivity(Fragment fragment, String activityName, Bundle bundle) {\n        Intent intent = new Intent();\n        intent.putExtras(bundle);\n        Context context = fragment.getContext();\n        if (context != null) {\n            intent.setClassName(fragment.getContext(), activityName);\n        }\n        fragment.startActivity(intent);\n    }\n\n    public static void startBundleActivities(Activity activity, String[] activityNames, Bundle[] bundles) {\n        if (activityNames != null &amp;&amp; bundles != null &amp;&amp; activityNames.length &gt; 0 &amp;&amp; bundles.length == activityNames.length) {\n            Intent[] intents = new Intent[activityNames.length];\n            for (int i = 0; i &lt; activityNames.length; i++) {\n                intents[i] = new Intent();\n                intents[i].putExtras(bundles[i]);\n                intents[i].setClassName(activity, activityNames[i]);\n            }\n            activity.startActivities(intents);\n        }\n    }\n\n    public static void startBundleActivityForResult(Activity activity, String activityName, Bundle bundle, int requestCode) {\n        Intent intent = new Intent();\n        intent.putExtras(bundle);\n        intent.setClassName(activity, activityName);\n        activity.startActivityForResult(intent, requestCode);\n    }\n\n    public static void startBundleActivityForResult(Fragment fragment, String activityName, Bundle bundle, int requestCode) {\n        Intent intent = new Intent();\n        intent.putExtras(bundle);\n        Context context = fragment.getContext();\n        if (context != null) {\n            intent.setClassName(context, activityName);\n        }\n        fragment.startActivityForResult(intent, requestCode);\n    }\n\n}<\/code><\/pre>\n<h3>\u533a\u5206ViewGroup\u4e2d\u52a0\u8f7d\u4e0e\u672c\u5730startActivity\u65b9\u5f0f\u52a0\u8f7d<\/h3>\n<p>\u53ef\u901a\u8fc7Intent\u4f20\u53c2\u52a0\u4ee5\u533a\u5206\uff1a<\/p>\n<pre><code class=\"language-java\">public enum IntentFlag {\n    NONE,\n    ACTIVITY_SINGLE,\n    ACTIVITY_VIEW_GROUP\n}<\/code><\/pre>\n<p>\u4f8b\u5982\u767b\u5f55\u8df3\u8f6c\uff1a<\/p>\n<pre><code class=\"language-java\">if (mPageClass != null) {\n    if (mBundle == null) {\n        mBundle = new Bundle();\n    }\n    mBundle.putInt(&quot;activity_flag&quot;, IntentFlag.ACTIVITY_SINGLE.ordinal());\n    AtlasDelegateHelper.startBundleActivities(mActivity, new String[]{ActivityConfig.ACTIVITY_MAIN, mPageClass.getName()}, new Bundle[]{new Bundle(), mBundle});\n    mActivity.overridePendingTransition(R.anim.push_bottom_in, R.anim.push_bottom_out);\n} else {\n    AtlasDelegateHelper.startBundleActivity(mActivity, ActivityConfig.ACTIVITY_MAIN);\n    mActivity.overridePendingTransition(R.anim.push_bottom_in, R.anim.push_bottom_out);\n}\nmActivity.finish();<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Atlas\u5728ViewGroup\u4e2d\u53ca\u672c\u5730startActivity\u65b9\u5f0f\u52a0\u8f7dbundle\u63d2\u4ef6 public cla [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[275],"tags":[],"class_list":["post-1217","post","type-post","status-publish","format-standard","hentry","category-atlas"],"_links":{"self":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/1217","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/comments?post=1217"}],"version-history":[{"count":0,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/1217\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/media?parent=1217"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/categories?post=1217"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/tags?post=1217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}