Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Inner classes Android中的两个onCreate()方法?_Inner Classes_Soundpool_Android - Fatal编程技术网

Inner classes Android中的两个onCreate()方法?

Inner classes Android中的两个onCreate()方法?,inner-classes,soundpool,android,Inner Classes,Soundpool,Android,我正在研究另一个例子(在这里找到)。但是由于某种原因,我最终得到了两个onCreate()方法,如果我删除了其中一个,我就会出错 我正在尝试将MP3加载到声音池中一次,然后在其他活动中调用它们 我的代码: class MyApp extends Application { private static MyApp singleton; private static SoundPool mSoundPool; public onCreate() { // ##### D

我正在研究另一个例子(在这里找到)。但是由于某种原因,我最终得到了两个
onCreate()
方法,如果我删除了其中一个,我就会出错

我正在尝试将MP3加载到声音池中一次,然后在其他活动中调用它们

我的代码:

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);
    }
}

您的代码每个类只有一个
onCreate
方法。它们有不同的用途,在操作系统创建每个类时调用它们

当创建应用程序并在
MyApp
类中设置应用程序范围的状态时,将调用您的
MyApp.onCreate


您的
TestAndRoidGlobalActivity.onCreate在创建活动时被调用,并为该特定活动设置状态,然后初始化其UI。

您不能混淆Application.onCreate(在创建应用程序时调用)和Activity.onCreate(在每次调用活动时调用)(在一次应用程序执行过程中可能发生多次)


另外,在每个重写的方法上面都应该有@Override注释。

因此,在应用程序类中有1个
onCreate
,在
Activity
中有1个,没关系。问题是为什么要将
application
Activity
放在一个文件中。我想这就是这样做的:如果我把它放在一个单独的文件中我怎么称呼它呢?第一个onCreate告诉我“缺少方法的返回类型”,我在那里做什么?(我是noob)