11

通常、C または C++ プログラムには、通常、メイン ループ/関数がありますint main ()。Android Java開発で使用できる同様の機能はありますか?

4

4 に答える 4

12

Android プログラムに関する限り、main() はありません。プログラムで定義またはオーバーライドするメソッドを呼び出す、OS が実行する UI ループがあります。これらのメソッドは、onCreate()、onStart()、onResume()、onReStart()、onPause()、onStop()、または onDestroy() から呼び出されるか、定義されている可能性があります。これらのメソッドはすべて、プログラムでオーバーライドできます。

基本的な問題は、OS がリソースに制約のある環境で実行するように設計されていることです。OS がより多くのメモリを必要とする場合 (これはマルチタスク OS です)、プログラムを停止し、さらには完全に停止できるように準備する必要があります。それを処理するには、プログラムに上記のすべての関数の一部が必要です。

アクティビティのライフサイクルは、これを最もよく表しています (プログラムは 1 つまたは複数のアクティビティです。アクティビティを画面と考えてください)。

http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

結論: プログラムは onCreate() から onResume() で「開始」しますが、OS はループを実行しています。プログラムは、OS が送信するものを処理するために、OS へのコールバックを提供します。プログラムの任意の時点で長いループを配置すると、OS (具体的には UI スレッド) が時間の一部を取得できないため、フリーズしているように見えます。長いループにはスレッドを使用します。

于 2009-07-10T03:18:20.880 に答える
6

Android 環境では、main() はありません。OS はマニフェスト ファイルに依存して、アプリケーションへのエントリ ポイント (ほとんどの場合アクティビティ) を見つけます。

詳細については、 http://developer.android.com/guide/topics/fundamentals.htmlを参照してください。

于 2009-07-08T20:34:34.537 に答える
3

によると: http://developer.android.com/guide/tutorials/hello-world.html

アプリケーション クラスは、アプリケーションがサポートする各アクティビティのメソッドをサポートする必要があります。一般的なケースでは、onCreate は、必要に応じて main/top 関数と同等である可能性があります。

于 2009-07-08T18:03:40.083 に答える
1

タイマーを作成し、ティックごとにカスタム関数を実行し、特定の時間になったらタイマーをリセットすることで可能かもしれません

于 2013-02-05T21:22:55.607 に答える