Androidには、プログラムのメインループを含むC/C ++の「Int Main」に類似した関数はありますか?

StackOverflow https://stackoverflow.com/questions/1099640

質問

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

役に立ちましたか?

解決

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

結論:onResume()を介してoncreate()でプログラムを「開始」しますが、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

アプリケーションクラスは、アプリケーションがサポートする各アクティビティの方法をサポートする必要があります。一般的なケースでは、オンクリートはおそらくニーズのメイン/トップ関数に相当します。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top