一个方法搞定安卓路由跳转
生活随笔
收集整理的這篇文章主要介紹了
一个方法搞定安卓路由跳转
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
前言
團隊分模塊開發(fā)在大項目上很常見,但項目組A想跳轉(zhuǎn)到一個項目組B負責的Activity,此時若B未創(chuàng)建該Activity,則會影響項目進度,由此,安卓路由跳轉(zhuǎn)出現(xiàn)了
原理
原理比較簡單,大家都知道Context.startActivity()這個方法需要傳一個Context和需要啟動的Activity的Class類,而該方法就是利用運行時根據(jù)包名.類名來找到Class對象,然后使用Context.startActivity()來跳轉(zhuǎn)
代碼實現(xiàn)
Java,使用了工具類靜態(tài)方法
public class JumpUtil {/*** 路由跳轉(zhuǎn)** @param context 上下文* @param activityPath 要跳轉(zhuǎn)的類的全包名.類名* @param bundle 要傳遞的參數(shù)*/public static void jump(Context context, String activityPath, Bundle bundle) {if (TextUtils.isEmpty(activityPath))return;try {Intent intent = new Intent(context, Class.forName(activityPath));if (bundle != null)intent.putExtras(bundle);context.startActivity(intent);} catch (ClassNotFoundException e) {e.printStackTrace();}} }使用 JumpUtil.jump(this, "com.lt.mylibrary.LibraryActivity", null);Kotlin,使用了擴展方法實現(xiàn)
/*** 路由跳轉(zhuǎn),使用Context調(diào)用即可* @param activityPath 要跳轉(zhuǎn)的類的全包名.類名* @param bundle 要傳遞的參數(shù)*/ fun Context.jump(activityPath: String, bundle: Bundle? = null) {if (TextUtils.isEmpty(activityPath))returntry {startActivity(Intent(this@jump, Class.forName(activityPath)).apply {if (bundle != null)this@apply.putExtras(bundle)})} catch (e: ClassNotFoundException) {e.printStackTrace()} }Context的子類內(nèi)使用 jump("com.lt.mylibrary.LibraryActivity")注意事項
總結(jié)
以上是生活随笔為你收集整理的一个方法搞定安卓路由跳转的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android studio引用modu
- 下一篇: 图像混合模式:Android Paint