現在我正在使用隨機數請求代碼。因此,每次我爲startActivityForResult添加新活動時,都需要檢查所有其他此類活動以避免衝突。可能有定義價值的任何做法,不可能通過設計碰撞? 你覺得呢?Android中是否有任何有關請求碼值的建議?
回答
同樣重要,如果你仍然需要檢查的活動和結果一樣視覺拋光結構請檢查此方法。開始活動時
class RequestCode {
static final int IMPORT = 100;
static final int WRITE_PERMISSION = 101;
}
使用代碼:
聲明內部類的活動類中
startActivityForResult(intent, RequestCode.IMPORT);
檢查結果:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RequestCode.IMPORT && resultCode == RESULT_OK) {
//...
}
}
遞增數目是保證是無碰撞(直到它包裝)。實際上 不應該發生,除非你使用了很多。
你可以一個類添加到您的項目,讓你號碼。例如
public class GlobalStuff {
private static final AtomicInteger seed = new AtomicInteger();
public static int getFreshInt() {
return seed.incrementAndGet();
}
}
現在在你的代碼,只要你需要,而不是使用
public void doSomething() {
startActivityForResult(intentA, 342);
}
一些不喜歡它
private static final int REQUEST_CODE = GlobalStuff.getFreshInt();
public void doSomething() {
startActivityForResult(intentA, REQUEST_CODE);
}
,你是安全的,你不使用兩次相同的數字。至少在代碼在同一個進程中運行時。
唯一的問題是,你不能在switch
語句中使用這些數字(如case REQUEST_CODE:
),因爲交換機需要那些在編譯時已知數
您可以在全局散列映射幫助下在switch語句中使用它,可能嗎? – creitve
這種方法效果很好..直到第三方圖書館決定做類似的事情。 –
其實你並不需要檢查所有如果您在不同的活動中擁有相同的值,則活動並不重要。
請求代碼的想法是,您在活動X中onActivityResult()
可以區分開始於startActivityForResult()
的不同請求的結果。
所以,如果你在你活動的3次不同的startActivityForResult()
通話,就需要3個不同的請求代碼,以便能夠在onActivityResult()
區分它們 - 這樣你就可以知道哪些結果屬於哪個開始 。但是,如果您有其他活動Y其中你在做類似的東西,它不會當請求代碼有像在活動X.
- 1. 我正在創建CURL請求中是否有任何錯誤?
- 2. gradle.processResources中的代碼塊是否有其他任務被請求
- 3. 有關如何簡化此代碼的任何建議?
- 4. 是否有任何工具來模擬java中的http請求
- 5. 關於構建宏的建議請求
- 6. 是否有任何提供建議詞的API?
- 7. 如何檢查請求URI是否有任何參數
- 8. 如何知道是否有任何AJAX請求和Ajax成功
- 9. Ember.js是否有任何附件來發送請求?
- 10. Trustpilot API是否對請求數量有任何限制?
- 11. 有關改進我的代碼(JavaScript)中(負)因數的任何建議?
- 12. MongoDB建議請求
- 13. Java中是否有請求上下文?
- 14. 我的需求是否有任何wordpress表單構建插件?
- 15. 是否建議爲每個客戶端請求創建線程?
- 16. 如何判斷請求中是否有缺少的項目。Django中的請求
- 17. 是否有無意中更改每個請求上的cookie值
- 18. 有沒有鉻開關來抑制'外部協議請求'?
- 19. 是否有可能爲任何通過最低要求的設備構建android?
- 20. 關於如何構建和搜索的建議請求ElasticSearch
- 21. 是否有任何關於安全性的Android平臺的編碼指南?
- 22. Android中的Google專有協議。有關他們的任何信息?
- 23. 有沒有任何方法或代碼使http請求更快?
- 24. 請建議任何庫的本地數據庫在android中
- 25. 是否可以使用nodeJS創建Outlook的會議請求?
- 26. 當curl等效成功時,使用android上的實體構建器的Truevault請求失敗。有關代碼更改的任何建議?
- 27. 建議有關的AsyncTask
- 28. 是否所有的Web請求都包含請求者的IP?
- 29. 有關加速克隆哈希映射的Java代碼的任何建議?
- 30. 是否有設計比硬編碼值以外的UI任何替代的Android
我只是使用隨機數(在編譯時生成),並且從來沒有任何問題 - 但這是一個很好的問題。 – Booger