シングルトンとして動作するService
を作成することは悪い習慣ですか?Androidでシングルトンとしてサービスを使用する
public class CustomService extends Service {
private List<Profile> mProfiles;
private static CustomService instance;
public static CustomService getInstance() {
if(instance == null) {
instance = new CustomService();
}
return instance;
}
public List<Profile> getProfiles() {
return mProfiles;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
...
}
...
}
Service
を行うだけではなくシングルトンの理由がある:私はService
のようなものを持っていることができるように、停止しないと、それはいくつかの他のエンジンとActivities
が使用することを、いくつかのプライベートなデータが含まれているんService
を意味しますアプリケーションとは独立して動作しなければならないということです。開始時には決して閉じてはならず、アプリケーションに依存しないwebsocketを接続します。あなたは私に何を勧めていますか? Service
を再利用して、他のエンジンから利用可能なデータ(mProfiles
アレイなど)とActivities
を入手する方が良いでしょうか?
私はService
がシングルトンとして動作するところを読んだことがありますが、アプリケーションの他のポイントからプライベート変数にアクセスする方法はわかりません。
ありがとうございます。
あなたが知っている限り、あなたはサービスインスタンスを自分で作成すべきではありませんが、コンテキストを使って 'startService()'を使うべきです。私は結果が 'new CustomService();を使用しているかどうか分かりません。 –
こんにちは、あなたの答えに感謝します。しかし、startServiceはサービスを開始してonStartCommandを呼び出しますが、これは私が望むものではありません。アプリケーションのonCreateメソッドで一度サービスを開始し、アプリケーションの他のポイントからサービスのプライベート変数を取得したい – FVod