私は複数の開発者がいるプロジェクトに取り組んでいます。私たちは1つのかなり大きなアプリに取り組んでいます。すべての開発者には、メインアプリ全体のサブアプリと見なすことができるいくつかのアクティビティがあります。
これは最良の設計ではないかもしれないことを私は理解していますが、それは存在し、私たちはそれをなんとかして処理しなければなりません。
ここでの主な問題は、常にアクティブでI / Oなどをチェックし、すべてのサブアプリ/アクティビティにステータス変更を与えることができるマスターが必要であるということです。「インターネットに接続できなくなった」など。
現在、そのマスターはシングルトンであり、ランチャーアクティビティによって最初にインスタンス化され、アクティビティが受信する更新に応じて適切なインターフェイスを渡すことで、すべてのアクティビティ/サブアプリに登録できます。
これは機能していますが、シングルトンはインターネットやGPSなどのシステムステータスを決定するためにシステムリソースにアクセスするためのコンテキストを必要とするため、正しく感じられません。シングルトンがOSによって強制終了された場合、シングルトンは何らかの形でコンテキストを取得する必要があるため、単純な「getInstance」はあまり効果がありません。Applicationクラスを拡張し、そこで静的メンバーコンテキストを作成する方法について読みましたが、この変数は揮発性である必要があり、アプリ全体がクラッシュ後の再起動/強制終了状態にある場合はnullを返す可能性があります。安全ではありません。
また、マスターが何らかの形でユーザーダイアログを開いてユーザーに警告などを表示する可能性もあります。これらの警告はアプリ全体で同じように見えるはずであり、開発者はいつ、なぜ突然ポップアップするのかを心配する必要はありません。現在、これらのメッセージは、すべてをオーバーレイするカスタムトーストとして表示されます。もちろん、コンテキストが必要であり、アプリが閉じようとしている場合は問題が発生する可能性があります。
全体として、それは私たちが直面している混乱であり、私は解決策を探しています。
では、さまざまなアクティビティに情報を渡したり、警告などを投稿したりできる、安全なマスターオブジェクトまたはアクティビティ(またはサービス)を作成するにはどうすればよいですか(アクティビティを閉じるか、少なくともアクティビティを閉じるように命令することもできます)。 can_closeインターフェイスを登録します)。
クラッシュ後にAndroidがアクティブだったアクティビティのみを再起動した場合、Androidも再起動するか、少なくとも以前と同じ情報を取得/提供することができます。
すべてのアイデアは歓迎されますが、アプリの全面的なオーバーホールは不可能です(時間と人員の不足)