一個方法搞定安卓路由跳轉
前言
團隊分模組開發在大專案上很常見,但專案組A想跳轉到一個專案組B負責的Activity,此時若B未建立該Activity,則會影響專案進度,由此,安卓路由跳轉出現了
原理
原理比較簡單,大家都知道Context.startActivity()這個方法需要傳一個Context和需要啟動的Activity的Class類,而該方法就是利用執行時根據包名.類名來找到Class物件,然後使用Context.startActivity()來跳轉
程式碼實現
Java,使用了工具類靜態方法
public class JumpUtil { /** * 路由跳轉 * * @param context 上下文 * @param activityPath 要跳轉的類的全包名.類名 * @param bundle 要傳遞的引數 */ 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,使用了擴充套件方法實現
/**
* 路由跳轉,使用Context呼叫即可
* @param activityPath 要跳轉的類的全包名.類名
* @param bundle 要傳遞的引數
*/
fun Context.jump(activityPath: String, bundle: Bundle? = null) {
if (TextUtils.isEmpty(activityPath))
return
try {
startActivity(Intent([email protected], Class.forName(activityPath)).apply {
if (bundle != null)
[email protected](bundle)
})
} catch (e: ClassNotFoundException) {
e.printStackTrace()
}
}
Context的子類內使用
jump("com.lt.mylibrary.LibraryActivity")
注意事項
- 要跳轉的類所在的module必須被主模組或當前模組引用,否則會找不到Class物件
- 傳入值必須是全包名.物件名,否則找不到Class物件
- 可以對包名的String串進行封裝,可以降低出錯率
- 比較規範的命名方式可以減少書寫錯誤
- 路由啟動Service可以自行擴充套件
相關推薦
一個方法搞定安卓路由跳轉
前言 團隊分模組開發在大專案上很常見,但專案組A想跳轉到一個專案組B負責的Activity,此時若B未建立該Activity,則會影響專案進度,由此,安卓路由跳轉出現了 原理 原理比較簡單,大家都知道Context.startActivity()這個方法需要傳一個Con
Cordova - 徹底搞定安卓中的微信支付插件!
以及 andro 發現 bug 輸入參數 為我 開始 如何 工具 你看到這個標題肯定會驚訝,一個Cordova的微信支付插件,有這麽誇張嗎?信不信由你,我相信,最終你會回來看這篇文章的! 一,不要使用的微信支付插件:https://github.com/xu-li/cord
Cordova - 徹底搞定安卓中的微信支付外掛!
Cordova:8.0.0 Android studio:3.2.1 你看到這個標題肯定會驚訝,一個Cordova的微信支付外掛,有這麼誇張嗎? 一,不要使用的微信支付外掛:https://github.com/xu-li/cordova-plugin-wechat 上面的外掛,是目前大家
一行程式碼搞定安卓全螢幕適配——簡單粗暴-低入侵,無繼承,簡單高效
話不多說,先上解決方案 方案一(推薦) 1.引用工具類 DensityHelper.java 2.在自定義的 Application onCreate 方法中加入 new Dens
一行程式碼搞定安卓6.0動態許可權獲取(請求許可權庫)
安卓6.0的動態許可權申請困擾了很多開發者,谷歌提供的官方申請方式過於繁複,程式碼量很大,也不夠優雅。於是,我寫了一個動態請求許可權庫,用來方便的獲取許可權以及進行一些處理。 依賴庫 使用這個庫需要minSdkVersion>11,build.gr
一個方法搞定自定義tabBarItem中的控制元件位置均分
京東 qq 自定義tabbar控制元件均分 程式碼如下 //ViewController.m - (void)viewDidLoad { [super viewDidLoad
java判斷IOS還是安卓,跳轉不同的連線
protected void doGet(HttpServletRequest request, HttpServletResponse response, boolean headOnly) th
安卓頁面跳轉使用Context.startActivity注意事項
因是: Context中有一個startActivity方法,Activity繼承自Context,過載了startActivity方法。如果使用 Activity的startActivity方法,不會有任何限制,而如果使用Context的startActivity方法
安卓開發跳轉其他app指定activity
宣告: 0、原創,轉載請備註本文連結 1、所提供連結內容僅供參考,後果自負 2、真正的大師,永遠都懷著一
安卓app跳轉微信應用
最近公司突然提出app裡面直接開啟微信應用並且跳轉到公司的公眾號賬號,以為很輕鬆的實現,結果以百度,微信官方居然關閉掉了介面,也就是功能不能實現,所以大家也不要這百度瞎折騰啊,好啊, 退而求其次,只好實現使用者app內部複製公眾號,點選跳轉微信應用,用網上的方法JumpTo
一個實驗搞定華為hybrid-vlan基本配置及原理
華為 hybrid-vlan實驗拓撲:2. 實驗需求:PC1和PC3屬於VLAN10 PC2和PC4屬於VLAN20 PC5和PC6屬於VLAN30。VLAN10和20的成員都可以和VLAN30中PC5通信,但是VLAN10和VLAN20的成員之間不能通信(通過二層技術實現此需求,就是華為Hybrid
python 第一周(第一天) 我的python成長記 一個月搞定python數據挖掘!
__name__ -c pass class port .py contact 成長 class a python代碼的組織方式: .py 文件 模塊文件樣式: #!/usr/bin/python#-*-coding:utf8-*- """@author: yugengde
python 第一周(第三天) 我的python成長記 一個月搞定python數據挖掘!(04)
數字 date .get raw dict 元素 upd 轉換成 efault 字符串 str 和 unicode str 字節流 unicode 字符流 (中文,英文,等等) => 如何轉換成計算機中的01代碼呢? 出現了編碼 ascii, iso8859
python 第二周(第八天) 我的python成長記 一個月搞定python數據挖掘!(14)
num print 數據 span python rate string spa rom from lxml import etreedoubanhtml = ‘‘‘‘‘‘doc = etree.fromstring(doubanhtml)for eachbook in d
python 第二周(第八天) 我的python成長記 一個月搞定python數據挖掘!(15)
center project ron 高層 web 快速 art start mes scrapy爬蟲 企業級爬蟲:python開發的一個快速,高層次的web抓取框架,用於抓取web站點並從頁面提取結構化的數據。 scrapy用途廣泛,可用於數據挖掘,數據監測和自動化測試
python 第二周(第十一天) 我的python成長記 一個月搞定python數據挖掘!(19) -scrapy + mongo
msg 步驟 [0 ssi xtra tin perl overflow tab mongoDB 3.2之後默認是使用wireTiger引擎 在啟動時更改存儲引擎: mongod --storageEngine mmapv1 --dbpath d:\data\db 這
簡便方法搞定第三方SDK的Jar包在DelphiXE5中的引入
earch html targe bject jar itl clas article .html 簡便方法搞定第三方SDK的Jar包在DelphiXE5中的引入 (2014-02-21 17:30:17) 轉載▼ 標簽: android delphi
Java 11 快要來了,編譯 & 運行一個命令搞定!
新版本 真的 alt eba 符號 pat oot AD 命令編譯 Java 11 馬上要來了,原定於 9 月發布,還有不到 3 個月了,敬請期待更多新功能被加入到 11 當中,本文本講的是 JEP 330 這個新特性。 化繁為簡,一個命令編譯運行源代碼 看下面的代碼。 /
從另一個思路來學習安卓事件分發機制
從另一個思路來學習安卓事件分發機制 前言 事件分發機制是一個安卓老生常談的話題了,從前幾年的面試必問題到如今的本當成預設都會的基礎知識。關於這方面的部落格網上已經有很多很多了,有從原始碼分析的,有從實際出發開始分析的等等。面對這麼多的教程,小白可能一頭霧水不知道從哪裡看起,而且看完之後感覺啥也沒留下。那麼
使用gevent.monkey.patch_all() 協程池遇到阻塞,在任務中新增一個sleep()搞定~
關於使用gevent.monkey.patch_all()協程池遇到阻塞解決辦法: import time ... class Example: ... time.sleep(0.000001) 在進行多執行緒時monkey會阻塞住執行緒的繼續執行,需要對monkey.p