所以我正在製作一個UI元素的庫項目。圖書館有一些基於ActionBarSherlock的活動,它是android中操作欄的向後兼容性庫。在這些活動中,我希望在操作欄中有一個按鈕,無論用戶在庫項目中使用哪個活動,都可以將用戶帶回家。
一些術語。 '庫'是指我正在開發的Android UI庫項目。 '應用程序'是指開發人員可能使用的庫中包含的任何客戶。
通常,當你做一個活動,你想打電話給另一個,你會做這樣的事情。
intent = new Intent(this, WhateverMyActivityName.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
夠簡單。但這是棘手的問題。 Android庫幾乎不知道應用程序正在使用它們。所以'WhateverMyActivityName.class'是沒用的,因爲沒有辦法預測開發者應用程序會調用他們的活動。
我需要的東西來代替
intent = new Intent(this, WhateverMyActivityName.class);
這樣
intent = new Intent(this, getApplication().MainActivity().getClass());
或者可能使用某種意圖的行動,它將調用的主要活動在應用(Intent.ACTION_MAIN or Intent.CATEGORY_LAUNCHER)
所以在簡而言之:我如何從圖書館項目獲得應用程序主要活動?
剛剛在Intent文檔中發現了這一點 ACTION_MAIN與類別CATEGORY_HOME - 啓動主屏幕。 – OVERTONE
這是一件很奇怪的事情..通常我們創建庫項目,以便我們可以重複使用它們的許多應用程序..獨立於應用程序代碼去那裏..調用一個庫項目中的特定應用程序活動限制了它的使用.. – Krishnabhadra
@Krishnabhadra它是一個不尋常的用例,但圖書館的設計有一個主頁按鈕,我不能想出任何方法來阻止圖書館出血進入應用程序。也許我應該將它配置爲XML資源,以便開發人員可以指定他們想要調用的活動? – OVERTONE