私は Android のプロではありませんが、アプリを非常に大きくする 50 以上のアクティビティで構成されるアプリを開発しました。開発から 8 週間が経過しましたが、現在、アプリのメンテナンスとアップグレードが困難な問題が発生しています。私が扱っている主なものは、
アクティビティのコンストラクターにオブジェクト参照を渡すことができません。
startActivityForResult
実際、私は–Intent
–のメカニズムがonActivityResult
本当に制限されており、アクティビティごとのアクションの多くの定数の汚いコードが発生し、その多くswitch
case
がアプリの流れをたどるのが本当に難しいことを発見しました。もう 1 つの問題は、アクティビティごとに独自のライフ サイクルがあるため、アプリ全体のライフ サイクルを管理する方法がわからないことです。
私はLWUITとJ2MEで成功した経験がありました。これは、 J2ME MIDlet を無視し (android のアクティビティに似ています)、独自のアーキテクチャとウィンドウ システムをアプリへのエントリとして 1 つの MIDlet だけで実装するものです。私はアンドロイドについても同じ考えを思いつきました。
明確にするために、Activity
オブジェクトを拡張するオブジェクトとして実装されたメイン アクティビティとその他のアクティビティが1 つだけのアプリを考えています。View
これらのビューはメイン アクティビティに動的に追加されFrameLayout
、互いにスタックされます。アクティビティのロジックはそのようなクラスで実装でき、この方法でダイアログを実装する方法さえ見つけました。ビジネス オブジェクトと状態オブジェクトをコンストラクターに渡すことができます。これは、コードをもう少し書くという副作用を無視して良さそうに思えます。このようにして、リスナーをビューのコンストラクターに渡すこともできるため、アプリの UI 切り替えとフロー管理が容易になります。
しかし、質問は次のとおりです。
- それは良い習慣ですか?
- パフォーマンスやメモリの問題が発生しませんか?
私も承知しております
これらのいずれも、合理的な証拠または文書化された参照を使用して、パフォーマンスまたは実践に関する問題に明確に対処していません
誰かこれで私を助けてください