2

このようなアーキテクチャを持つアプリを作成しています

2つの活動があります

a) ベースアクティビティ

b) メインアクティビティ

BaseActivity は Activity を拡張します

mainActivity は BaseActivity を拡張します

public class MainActivity extends BaseActivity {
   onCreate(Bundle SavedInstance) {
      super.OnCreate(SavedInstance) 
      setContentView(R.Layout.screen_main)
   }
}

public class BaseActivity extends Activity {
  onCreate(Bundle SavedInstance) {
      super.OnCreate(SavedInstance)

      //not doing anything else in on create 
  }
}

アプリを起動すると MainActivity が呼び出されますが、アプリがコンテンツビューをR.Layout.screen_main イライラするような 2 秒間設定する前に、最初にタイトル付きの白い画面が点滅してから実行されますsetContentView(R.Layout.screen_main);

アプリがスーパーで処理されている間、コンテンツ ビューを Android のデフォルト レイアウトに設定しているように感じます。OnCreate ほとんどのアプリの場合、代わりにアプリのタイトルバーのない黒い画面が表示されますが、私のアプリでは最初に白い画面とタイトルバーのデフォルトのAndroidレイアウトが表示され、次にレイアウトが読み込まれるので、私の質問は

アプリが他のすべてのことで最初に行うことは、レイアウトを設定して、アプリを起動したときにビューが表示され、最初に空白の黒い画面でさえタイトル付きの白い画面が表示されないようにするためです。この画面の代わりに

4

3 に答える 3

2

MainActivity が実行さsuper.onCreate()れるたびに、呼び出しが原因です

なぜならsuper.onCreate()

BaseActivity の onCreate が実行されるため、BaseActivity のコンテンツが表示されます。そしてそれがラインに到達するたびに

setContentView(layout)

現在のアクティビティの新しいコンテンツを設定しますi.e MainActivity

すべてのアクティビティで共通のメニューが必要な場合はいつでも、コンテンツを設定しているため、これを使用することをお勧めしますsuper.onCreate()。したがって、アクティビティを拡張する代わりに BaseActivity で拡張しないでください

于 2013-03-29T06:22:47.707 に答える
0

おそらく、MainActivityどこかで呼び出しておりBaseActivity、再帰的にもう一度呼び出されているためです。

于 2015-03-10T01:20:45.257 に答える
0

試す

public class MainActivity extends Activity

public class BaseActivity extends Activity 
于 2013-03-29T06:08:21.447 に答える