シングルトンをいくつかのプロセスで処理する方法を教えてください。出来ますか? たとえば、Androidのリモートサービスで動作するコードがあります。この目的のためにシングルトンを書くにはどうすればいいですか?シングルトンからいくつかのプロセス?
答えて
public enum MySingleton {
SOLE;
//all class stuff
}
これはシンプルに書かれた、怠惰でスレッドセーフなシングルトンです。 MySingleton.SOLE
を直接使用することも、他の変数に入れることもできますが、それらはすべて1つのインスタンスへの参照にすぎません。あなたはあなたが望むように多くのプロセスでそれを使うことができます。それはEffective Java, Second Edition
から使用してグローバルデータについてである、
それは私の考えではありません(アンドロイドの処理はスレッドが実際にある)(質問にその要件を入れて下さい)、あなたはどこからでもMySingleton.SOLE
に達する可能性があります。静的定数はグローバルです。もちろん、名前はあなたのものです。
もちろん、どのようなものでも回避策があります。あなたはクラスローディングによってこのシングルトンをだますことができます。あなたは本当に、いくつかの異なるタスクではなく、スレッドのための1つのインスタンスを持つようにしたい場合は
は、その後、簡単な解決策は、シングルトンHybernateまたは他のORMオブジェクトとして構築されます。すべてのプロセスは、同じデータを持つ同じテーブル内に同じ行を表示します。しかし、私はそれがあなたの仕事の過労だと思う。
私はいくつかのプロセスで使うことができるシングルトンを作るためにクラスが必要です。 しかし、私のシングルトンのgetInstance()メソッドを呼び出すと、私のシングルトンの新しいインスタンスを取得しています – user1074896
私の答えを注意深く読んでください。それはクラスではありません、enumです! SOLEの2番目のインスタンスを作成することは絶対不可能です。 – Gangnus
私は、列挙ではなくシングルトンになるためにクラスが必要です。グローバルデータを列挙型で保存するにはどうすればよいですか?事前に感謝します。 – user1074896
作成するリモートサービスは常にシングルトンになります。 Android Interface Definition Languageを使用してプロセス間で通信するには、インターフェースが必要です。
Android Interface Definition Language
ので、ここで私達は行く、この例 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/RemoteService.htmlこのスレッドは古いですが、現在の受け入れ答えが間違っていると一部の人が誤解であるを参照してください。
Androidでのサービスは、アプリと同じプロセスで実行しても、別のプロセスで実行してもかまいません。
これは、内部で使用するために自分のアプリケーションによって定義されたサービスである場合、おそらく同じプロセスで実行されている可能性があります。 process
attributes on the Manifestのいずれも設定しないでください。その場合、サービスはメインスレッドまたはいくつかのバックグラウンドスレッドでタスクを実行し、同じシングルトンインスタンスを他のアプリケーションと共有します。
これは別のプロセスで実行されている真のリモートサービス、または別のアプリケーションであれば、何を達成しようとしていることは、はるかに難しいくらいです。各プロセスは、シングルトンの独自のインスタンスを持ち、互いに関連するものではありません。これは完璧な意味を持ちます。いったん異なるプロセスが同じバージョンのコードを実行していないことが分かったら、これは理にかなっています。
実際にのプロセス間で共通のオブジェクトを持ちたい場合(ヒント:ほとんどの場合はそうではないでしょう)、そのデータ用に共有メモリスペースを作成し、いくつかの同期手段を実装する必要があります。私は確信しているその大学のフル講義は件名です。
- 1. シングルトンのデータを見ているビューはいくつかありますか?
- 2. gradleのプロセスからいくつかのフォルダとファイルを除外します
- 3. VBでいくつかのプロセスを終了しますか?
- 4. 同時にフォーク100個のプロセスを、時にはいくつかのプロセスがゾンビ
- 5. MPI_Waitanyがいくつかのプロセスを待っていません
- 6. 2つの同時プロセスからのログ
- 7. 1つの親プロセスからの複数の子プロセス
- 8. いくつかのマシンでWindowsプロセスの背景自体
- 9. dllはいくつかのプロセスにのみ注入する
- 10. C#2つの異なるスレッドからシングルトンを操作する
- 11. いくつかのプロセスで例外をスローする
- 12. 作成される子プロセスの数はいくつですか?
- 13. プロセスが占有するコアの数はいくつですか?
- 14. プロセスのどのくらいのメモリがページアウトされますか?
- 15. プロセスの実行時間はどのくらいですか?
- 16. いくつかの理由からform.reset
- 17. 1つのプロセスにいくつのランタイム(CLR)をロードできますか?
- 18. なぜ私のシングルトンはうまくいかないのですか?
- 19. スタックポインタはいくつかのプロセスでどのように機能しますか?
- 20. シングルトンをいつ使用するのですか?
- 21. 親プロセスから子プロセスへのWebcamストリーム
- 22. 私はMSBuildのプロセスのためにいくつかのカスタムロガーを書いた
- 23. シングルトン構成ファイルを正しく作成していますか?
- 24. シングルトンのGoogleクロージャコンパイラのJavaScriptについて
- 25. kdevelopデバッガは自動的にいくつかのステップを経てプロセスから切り離されます
- 26. Unicorn/Nginxプロセスが見つからない、ソケットオープン
- 27. いくつかのアンドロイドデバイスでOpenglテクスチャがちらつく
- 28. プロセスのtask_structからプロセスを所有しているユーザーを見つける方法はありますか?
- 29. テーブルからいくつかのカラム値を挿入してください。いくつかは手動です
- 30. Zend Frameworkの3つのシングルトン
質問が正しく表示されません。 – Lucifer
Androidでいくつかのプロセスにシングルトンクラスを書くことは可能ですか? – user1074896
http://groups.google.com/group/android-developers/browse_thread/thread/abe59add03ae4ce3 しかし、私はシングルトンを1つだけ持つ必要があります。可能でしょうか? – user1074896