通常、C または C++ プログラムには、通常、メイン ループ/関数がありますint main ()
。Android Java開発で使用できる同様の機能はありますか?
4 に答える
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 スレッド) が時間の一部を取得できないため、フリーズしているように見えます。長いループにはスレッドを使用します。
Android 環境では、main() はありません。OS はマニフェスト ファイルに依存して、アプリケーションへのエントリ ポイント (ほとんどの場合アクティビティ) を見つけます。
詳細については、 http://developer.android.com/guide/topics/fundamentals.htmlを参照してください。
によると: http://developer.android.com/guide/tutorials/hello-world.html
アプリケーション クラスは、アプリケーションがサポートする各アクティビティのメソッドをサポートする必要があります。一般的なケースでは、onCreate は、必要に応じて main/top 関数と同等である可能性があります。
タイマーを作成し、ティックごとにカスタム関数を実行し、特定の時間になったらタイマーをリセットすることで可能かもしれません