2011-08-16 15 views
1

私は別の例(ここで見つけたLoading MP3s into the Sound Pool in Android)を取り組んでいます。何らかの理由で私は2つのonCreate()メソッドで終わってしまいます。もし私が1つ削除すればエラーが出ます。Androidの2つのonCreate()メソッド?

私はMP3をSoundpoolに一度ロードしてから、他のアクティビティでそれらを呼び出そうとしています。

マイコード:

class MyApp extends Application { 
    private static MyApp singleton; 

    private static SoundPool mSoundPool; 

    public onCreate() { // ##### Deleting this gives me errors ###, not deleting it gives me 1 error. 
     super.onCreate(); 
     singleton = this; 
     mSoundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);// Just an example 
    } 

    public static MyApp getInstance() { 
     return singleton; 
    } 

    public SoundPool getSoundPool() { 
     return mSoundPool; 
    } 
} 


public class TestAndroidGlobalsActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 
} 
+1

アプリケーションクラスに 'onCreate'が1つあり、' Activity'にもう1つあります。これは大丈夫です。問題は、1つのファイルに 'Application'と' Activity'を張っている理由です。 – ernazm

+0

私はそれがここでどうやっているのかと思った:http://stackoverflow.com/questions/7061594/loading-mp3s-into-the-sound-pool-in-android私はそれを別ファイルに入れたらどうやって呼び出すの? – Ryan

答えて

3

あなたのコードは唯一のクラスごとに1つのonCreateの方法があります。それらは異なる目的を果たし、それぞれのクラスがOSによって作成されるときに呼び出されます。

MyApp.onCreateは、アプリケーションの作成時に呼び出され、MyAppクラス内にアプリケーション全体の状態を設定します。

あなたのTestAndroidGlobalsActivity.onCreateはアクティビティの作成時に呼び出され、その特定のアクティビティの状態を設定してUIを初期化します。

+0

最初のonCreateが "メソッドの欠落のREturnタイプ"を教えてくれました。私はそこで何をしますか? (私はノブです) – Ryan

+0

ダー、 "空"を忘れてしまった! – Ryan

1

あなたは、あなたがしなければならない、また、あなたのアプリケーションが作成されたときに呼び出さApplication.onCreate、およびActivity.onCreate、あなたの活動は、(1つのアプリケーションの実行中に数回起こる場合もある)と呼ばれるたびに呼び出され

を混同してはいけませんそれぞれのオーバーライドされたメソッドの上に@Overrideアノテーションを置きます。

+0

ありがとう!それは理にかなっている! – Ryan

関連する問題