[解決済み] super.onCreate(savedInstanceState)を実行します。
質問
Android Application Project を作成し、MainActivity.java で >
onCreate()
を呼び出しています。
super.onCreate(savedInstanceState)
.
初心者のため、どなたか上記の行の目的を説明していただけませんか?
どのように解決するのですか?
あなたが作るActivityはすべて、一連のメソッド呼び出しによって開始されます。
onCreate()
はその最初の呼び出しです。
アクティビティはすべて
android.app.Activity
のサブクラスを直接、または別のサブクラスを作成し、そのサブクラスを使用しています。
Activity
.
Javaでは、あるクラスを継承した場合、そのクラスのメソッドをオーバーライドして、その中で自分のコードを実行することができます。非常に一般的な例として、オーバーライドすることで
toString()
メソッドを拡張する際に
java.lang.Object
.
メソッドをオーバーライドする場合、クラスのメソッドを完全に置き換えるか、既存の親クラスのメソッドを拡張するかという選択肢があります。メソッドをオーバーライドするには
super.onCreate(savedInstanceState);
を実行するように Dalvik VM に指示します。
に加えて
を、親クラスの onCreate() にある既存のコードに追加します。もし、この行を省くと
あなたのコードだけ
が実行されます。既存のコードは完全に無視されます。
しかし、このスーパーコールをメソッドに含める必要があります。なぜなら、そうしないと
onCreate()
のコードは
Activity
が実行されることはなく、アプリはActivityに割り当てられたContextがないなど、さまざまな問題に直面することになります。
SuperNotCalledException
を使用すると、コンテキストがないことを理解するチャンスがあります)。
要するに、Android自身のクラスは信じられないほど複雑になり得るのです。フレームワーククラスのコードは、UI の描画、ハウスクリーニング、Activity とアプリケーションのライフサイクルの維持といったことを処理します。
super
の呼び出しによって、開発者はこの複雑なコードを舞台裏で実行しながら、独自のアプリのために優れた抽象化レベルを提供することができます。
関連
-
[解決済み】このアクティビティでは、Theme.AppCompatテーマ(またはその子孫)を使用する必要があります。
-
[解決済み】Android Studioです。「プロジェクトが C ドライブに作成されている場合、「タスク ':app:mergeDebugResources' の実行に失敗しました。
-
[解決済み】Android "ビュー階層を作成した元のスレッドだけが、そのビューに触れることができる"
-
[解決済み] android.intent.action.MAINの意味は何ですか?
-
[解決済み] Eclipseにプロジェクトをインポートした後に「Must Override a Superclass Method」エラーが発生する。
-
[解決済み] アプリケーションを終了することは嫌われますか?
-
[解決済み] Rが解決できない - Androidエラー
-
[解決済み] 残念ながらMyAppは停止してしまいました。どうすればよいですか?
-
[解決済み] Looperの目的、使い方を教えてください。
-
[解決済み】Android Studioです。jarをライブラリとして追加しますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Android TextView : "setTextで表示されたテキストを連結しない" について
-
[解決済み】コンテンツには、id属性が「android.R.id.list」であるListViewが必要です。
-
[解決済み】Android Studioです。「プロジェクトが C ドライブに作成されている場合、「タスク ':app:mergeDebugResources' の実行に失敗しました。
-
[解決済み】プロガードを有効にすると、タスク ':app:crashlyticsStoreDeobsDebug' の依存関係を判断できない。
-
[解決済み】アクティビティにない場所でのgetLayoutInflater()の呼び出し
-
[解決済み] サポートされていないメソッドです。BaseConfig.getApplicationIdSuffix()がサポートされていません。
-
[解決済み] TypeError: cb.apply は関数ではありません。
-
[解決済み] Gradle DSL メソッドが見つかりません:'compile()'
-
[解決済み] com.android.supportのライブラリは全て全く同じバージョン表記である必要があります。
-
[解決済み] Androidでイメージビューの背景を透明に設定する