我正在創建一個活動,我希望在意向包中需要特定的額外內容。要求額外傳遞給活動
我想知道最好的做法是什麼樣的。計劃不啓動,或者如果捆綁包不包含特定的額外內容,則立即結束活動。我也想通知調用者一個錯誤,說明這樣的情況。
我正在創建一個活動,我希望在意向包中需要特定的額外內容。要求額外傳遞給活動
我想知道最好的做法是什麼樣的。計劃不啓動,或者如果捆綁包不包含特定的額外內容,則立即結束活動。我也想通知調用者一個錯誤,說明這樣的情況。
該計劃不啓動,或者如果捆綁包沒有包含特定的額外資源,則立即結束活動。
驗證額外的onCreate()
,如果額外缺失/無效,請致電finish()
。
我也想通知調用者一個錯誤聲明這樣的。
您可以將某些內容記錄到LogCat。但是,您無權將異常拋入名爲startActivity()
的代碼。
你可能會考慮上,要麼活動產生某種形式的static
輔助方法:
只不過是組裝的,你想要的方式Intent
,或
還繼續運行並調用startActivity()
,給予適當的Context
,並鼓勵你的開發板的(使用該方法賄賂他們,用高爾夫球杆威脅他們等)。例如,在MyActivity
,具有:
public static void start(Context ctxt, YourEnum value) {
Intent i=new Intent(ctxt, MyActivity.this).putExtra(EXTRA_THINGY, value);
ctxt.startActivity(i);
}
和您的團隊成員可以撥打MyActivity.start(this, MyEnum.AWESOME);
,開始您的活動。儘管(例如,如果他們自己創建了Intent
,則不能強制編譯時錯誤),但他們不能以編程方式執行此操作。
注意,高爾夫球杆就是一個例子,而不是例如最佳實踐—,根據您的烘焙技能,你可以賄賂與cookies
你是否建議我的活動應該如下所示: public static Intent IntentFactory(Context context,Mode mode){Intent intent = new Intent(); intent.setClass(context,MyNewActivity.class); intent.putExtra(Mode.class.getName(),mode.name()); return intent; } – erik
@erik:抱歉,您的評論已被grue吃掉。我建議像'YourActivity。start()',其中'YourActivity'是你的活動,'start()'需要一個'Context'(用於啓動活動),你的'enum'和其他任何可以打包成extras的東西。對於一組非常複雜的演員,您可以創建一個完整的「IntentBuilder」 - 我通過CWAC-Cam2庫獲取該路線,以便組裝一個合適的「Intent」。 – CommonsWare
你能嘲笑我真的很快,以確保我的理解,這個助手在myactivity和「他們的活動」的例子稱它嗎? – erik
誰將會使用這個活動/威脅他們?只有你?你的開發團隊的成員?您的直屬團隊之外的人(包括普通大衆,如果這將用於分發圖書館)? – CommonsWare
我的開發團隊的成員 – erik
我應該補充說,額外的將被調用的活動的公共靜態枚舉..出於參數的緣故,讓我們調用該枚舉模式並說它有兩個值:A和B – erik