これは Android SDK に関してはあまり意味がないかもしれませんが、C++ では、他のクラス/オブジェクトを宣言して初期化する場所として main.cpp (および特に main() 関数) を維持することに慣れています。私のアプリケーションがそれらのクラスで行われること。その後、戻って main.cpp の内容を確認することはありません。しかし、Java や Android SDK では、メイン アクティビティで多数のメソッドをオーバーライドする必要があり、そのすべてが 1 つのファイルで行われます。例:
私のプロジェクトには MainActivity.java と SomeTest.java ファイルがあります。最初はアクティビティを拡張するデフォルトの MainActivity クラスで、SomeTest.java には新しいスレッドを宣言して実行するクラスが含まれています。MainActivity.java から SomeTest クラスを初期化し、アクティビティのハンドルをパラメーターとして渡します。
SomeTest test = new SomeTest(MainActivity.this);
MainActivity へのハンドルを持っているので、この新しく作成されたスレッドからすべてを実行します。UI を更新する必要がある場合は、runOnUiThread() を使用して新しい ListView (たとえば) を作成し、メイン レイアウトに表示します。getWidth() と getHeight() は ListView が実際に画面に表示されます。私にとって、MainActivity からそのスレッドへのそのような接続 (場合によっては「コールバック」) を作成することはお勧めできません。
スレッド内にonWindowFocusChanged() のようなメソッドを保持し、MainActivity.java にまったく触れない方法はありますか?
おっしゃるとおり、あまり意味がないかもしれません。