今、リクエストコードに乱数を使用しています。したがって、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);
}
のようにそれを行うと、あなたが使用しないことを安全です同じ数字が2回あります。少なくともコードは同じプロセスで実行されます。
唯一の問題は、スイッチがコンパイル時に知られている数字を必要とするため、実際
グローバルハッシュマップの助けを借りてswitch文で使用できますか? – creitve
このアプローチは、第三者のライブラリが類似のことをするまでは素晴らしいことです。 –
あなたがチェックする必要はありませんあなたは(case REQUEST_CODE:
のように)switch
文の中で、これらの数字を使用できないということであるすべてのあなたアクティビティとは、異なるアクティビティで同じ値を持っていれば大したことではありません。
リクエストコードの考え方は、アクティビティXのonActivityResult()
にあるstartActivityForResult()
で開始したさまざまなリクエストの結果を区別できるということです。
あなたの活動の3本の異なるstartActivityForResult()
電話を持っているのであれば、あなたはonActivityResult()
でそれらを区別することができるようにするために、3種類の要求コードが必要になります - あなたはどのを開始に属している結果伝えることができるので、 。しかし、あなたが何か同様のことをやっている別のアクティビティYがある場合、アクティビティXのようなリクエストコードがいつあるかは関係ありません。
- 1. Android Appに関する推奨事項
- 2. Qt "BoundsChecker"?ツールの推奨事項はありますか?
- 3. SNMP MIB Visualizerの推奨事項はありますか?
- 4. Snail Mail APIの推奨事項はありますか?
- 5. Subversion 1.5仮想アプライアンスの推奨事項はありますか?
- 6. Firebaseデータベースデザインの推奨事項
- 7. Excelチャートコンポーネントの推奨事項
- 8. Webアプリケーションデプロイメントアーキテクチャの推奨事項
- 9. ソケットの推奨事項
- 10. jQuery FileManagerの推奨事項
- 11. jQueryナビゲーションメニュープラグインの推奨事項
- 12. IoTデバイスの推奨事項
- 13. バーチャルキーボードの推奨事項(JavaScript)
- 14. プロジェクトコラボレーションツールの推奨事項
- 15. JavaScriptスタイルの推奨事項
- 16. HL7インターフェイスエンジンの推奨事項
- 17. Hadoop上のクラスタのノードリソースに関する推奨事項はありますか?
- 18. Cassandraシードノードの設定に関する推奨事項はありますか?
- 19. PHP SOAPクライアントチュートリアル/推奨事項
- 20. JavaMEに適した文法コンパイラの推奨事項はありますか?
- 21. アーキテクチャサブアプリケーションを使用したWebアプリケーションの推奨事項/推奨事項
- 22. WCFサービスをホストするための推奨事項はありますか?
- 23. IE 6/7 Javascriptメモリ検査ツールの推奨事項はありますか?
- 24. C Profilersに関する推奨事項?
- 25. Androidスタジオ仮想デバイスの設定に関する推奨事項
- 26. Pythonクロスプラットフォームリスナーサーバのための推奨事項
- 27. C#データベースアクセスのための推奨事項
- 28. MySQLのmy.cnfパフォーマンスチューニングの推奨事項
- 29. linux hostingのための推奨事項
- 30. Python 3とPyQt 4の推奨事項
を私は乱数を(使用コンパイル時に生成される)、問題は一度もありませんでしたが、これは良い質問です。 – Booger